In the Linux kernel, the following vulnerability has been resolved:
stmmac: Clear variable when destroying workqueue
Currently when suspending driver and stopping workqueue it is checked whether workqueue is not NULL and if so, it is destroyed. Function destroy_workqueue() does drain queue and does clear variable, but it does not set workqueue variable to NULL. This can cause kernel/module panic if code attempts to clear workqueue that was not initialized.
This scenario is possible when resuming suspended driver in stmmac_resume(), because there is no handling for failed stmmac_hw_setup(), which can fail and return if DMA engine has failed to initialize, and workqueue is initialized after DMA engine. Should DMA engine fail to initialize, resume will proceed normally, but interface won't work and TX queue will eventually timeout, causing 'Reset adapter' error. This then does destroy workqueue during reset process. And since workqueue is initialized after DMA engine and can be skipped, it will cause kernel/module panic.
To secure against this possible crash, set workqueue variable to NULL when destroying workqueue.
Log/backtrace from crash goes as follows: [88.031977]------------[ cut here ]------------ [88.031985]NETDEV WATCHDOG: eth0 (sxgmac): transmit queue 1 timed out [88.032017]WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:477 dev_watchdog+0x390/0x398 <Skipping backtrace for watchdog timeout> [88.032251]---[ end trace e70de432e4d5c2c0 ]--- [88.032282]sxgmac 16d88000.ethernet eth0: Reset adapter. [88.036359]------------[ cut here ]------------ [88.036519]Call trace: [88.036523] flush_workqueue+0x3e4/0x430 [88.036528] drain_workqueue+0xc4/0x160 [88.036533] destroy_workqueue+0x40/0x270 [88.036537] stmmac_fpe_stop_wq+0x4c/0x70 [88.036541] stmmac_release+0x278/0x280 [88.036546] __dev_close_many+0xcc/0x158 [88.036551] dev_close_many+0xbc/0x190 [88.036555] dev_close.part.0+0x70/0xc0 [88.036560] dev_close+0x24/0x30 [88.036564] stmmac_service_task+0x110/0x140 [88.036569] process_one_work+0x1d8/0x4a0 [88.036573] worker_thread+0x54/0x408 [88.036578] kthread+0x164/0x170 [88.036583] ret_from_fork+0x10/0x20 [88.036588]---[ end trace e70de432e4d5c2c1 ]--- [88.036597]Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-tools-libsUpgrade perfUpgrade kernel-debug-modulesUpgrade kernel-zfcpdumpUpgrade bpftoolUpgrade kernel-rt-debug-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-kvmUpgrade kernel-debugUpgrade kernel-rt-develUpgrade kernel-coreUpgrade kernel-debug-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-rt-coreUpgrade kernel-modulesUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-develUpgrade kernel-develUpgrade kernel-rt-debugUpgrade kernel-rt-debug-kvmUpgrade kernel-cross-headersUpgrade kernel-docUpgrade kernel-debug-develUpgrade kernel-rt-debug-modulesUpgrade kernel-modules-extraUpgrade python3-perfUpgrade kernelUpgrade kernel-tools-libs-develUpgrade kernel-headersUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-modulesUpgrade kernel-rt-modules-extraUpgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernel-rt | Aug 12, 2024 | Apr 4, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Apr 4, 2024 |
| Oracle_linux | — | Upgrade kernel | Aug 16, 2024 | Apr 4, 2024 |
| Redhat_linux | — | Upgrade kernel-rtUpgrade kernel | Aug 12, 2024 | Apr 4, 2024 |
| Rocky_linux | — | Upgrade python3-perfUpgrade kernel-rt-modules-extraUpgrade kernel-tools-libs-develUpgrade kernel-rtUpgrade kernel-rt-kvmUpgrade kernel-cross-headersUpgrade kernel-toolsUpgrade perfUpgrade kernelUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-rt-debug-debuginfoUpgrade kernel-rt-coreUpgrade kernel-debug-modules-extraUpgrade bpftoolUpgrade perf-debuginfoUpgrade kernel-debuginfoUpgrade kernel-rt-debuginfoUpgrade kernel-headersUpgrade kernel-debug-develUpgrade kernel-rt-debugUpgrade kernel-debug-coreUpgrade kernel-rt-debug-develUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debug-debuginfoUpgrade kernel-rt-debug-modules-extraUpgrade kernel-develUpgrade bpftool-debuginfoUpgrade kernel-modulesUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modulesUpgrade kernel-debugUpgrade kernel-tools-libsUpgrade kernel-modules-extraUpgrade kernel-rt-modulesUpgrade kernel-coreUpgrade python3-perf-debuginfoUpgrade kernel-tools-debuginfo | Aug 22, 2024 | Apr 4, 2024 |
| Suse | — | Upgrade kernel-docs-htmlUpgrade kernel-rt_debug-develUpgrade dtb-caviumUpgrade gfs2-kmp-64kbUpgrade kernel-default-baseUpgrade kernel-syms-rtUpgrade kernel-azure-extraUpgrade dtb-appleUpgrade cluster-md-kmp-azureUpgrade kernel-rt_debug-vdsoUpgrade kernel-default-livepatch-develUpgrade kselftests-kmp-azureUpgrade kernel-rt-extraUpgrade gfs2-kmp-rtUpgrade dtb-marvellUpgrade kernel-kvmsmall-develUpgrade kernel-debug-livepatch-develUpgrade kernel-azure-develUpgrade reiserfs-kmp-64kbUpgrade kernel-kvmsmall-vdsoUpgrade kernel-debug-vdsoUpgrade kernel-azure-vdsoUpgrade dlm-kmp-defaultUpgrade kernel-azureUpgrade kernel-rt-livepatch-develUpgrade kernel-source-rtUpgrade kernel-debug-develUpgrade kernel-rt-optionalUpgrade kernel-azure-livepatch-develUpgrade kernel-rt-vdsoUpgrade dtb-broadcomUpgrade reiserfs-kmp-rtUpgrade kernel-64kb-optionalUpgrade kernel-obs-buildUpgrade kernel-zfcpdumpUpgrade gfs2-kmp-azureUpgrade kernel-64kb-extraUpgrade dtb-amdUpgrade ocfs2-kmp-64kbUpgrade kernel-64kb-livepatch-develUpgrade kernel-source-vanillaUpgrade kselftests-kmp-64kbUpgrade kernel-azure-optionalUpgrade dtb-lgUpgrade dtb-hisiliconUpgrade dtb-renesasUpgrade dtb-freescaleUpgrade dtb-socionextUpgrade dtb-amazonUpgrade dtb-amlogicUpgrade kernel-rt_debugUpgrade kernel-source-azureUpgrade kernel-64kbUpgrade dtb-alteraUpgrade gfs2-kmp-defaultUpgrade dlm-kmp-64kbUpgrade kernel-default-livepatchUpgrade kernel-default-develUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-exynosUpgrade kernel-sourceUpgrade ocfs2-kmp-azureUpgrade kernel-devel-rtUpgrade dtb-mediatekUpgrade dtb-apmUpgrade dtb-armUpgrade dlm-kmp-rtUpgrade dtb-allwinnerUpgrade dtb-nvidiaUpgrade kernel-64kb-develUpgrade reiserfs-kmp-azureUpgrade reiserfs-kmp-defaultUpgrade ocfs2-kmp-defaultUpgrade kernel-syms-azureUpgrade cluster-md-kmp-defaultUpgrade kselftests-kmp-rtUpgrade kernel-default-vdsoUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-default-extraUpgrade kernel-default-base-rebuildUpgrade cluster-md-kmp-rtUpgrade kernel-rt-develUpgrade kernel-rtUpgrade kernel-symsUpgrade kernel-obs-qaUpgrade kernel-kvmsmallUpgrade dtb-rockchipUpgrade kernel-docsUpgrade kernel-devel-azureUpgrade kernel-default-optionalUpgrade kernel-rt-livepatchUpgrade kernel-defaultUpgrade dtb-xilinxUpgrade dtb-sprdUpgrade dlm-kmp-azureUpgrade kernel-develUpgrade kselftests-kmp-defaultUpgrade cluster-md-kmp-64kbUpgrade dtb-qcomUpgrade kernel-debugUpgrade kernel-macrosUpgrade ocfs2-kmp-rt | Jun 24, 2024 | Apr 4, 2024 |
| Ubuntu | — | Upgrade linux-image-5.15.0-112-genericUpgrade linux-image-5.15.0-110-lowlatency-64kUpgrade linux-image-6.5.0-1024-gcpUpgrade linux-image-6.5.0-44-lowlatency-64kUpgrade linux-image-nvidia-6.5Upgrade linux-image-gcpUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1058-nvidiaUpgrade linux-image-5.15.0-1046-gkeopUpgrade linux-image-5.15.0-1062-gcpUpgrade linux-image-starfiveUpgrade linux-image-oracle-64kUpgrade linux-image-6.5.0-44-generic-64kUpgrade linux-image-raspi-nolpaeUpgrade linux-image-ibmUpgrade linux-image-azureUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-kvmUpgrade linux-image-6.5.0-1017-starfiveUpgrade linux-image-awsUpgrade linux-image-raspiUpgrade linux-image-lowlatencyUpgrade linux-image-5.15.0-110-lowlatencyUpgrade linux-image-6.5.0-1026-oracle-64kUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-6.5.0-1023-nvidiaUpgrade linux-image-5.15.0-113-generic-64kUpgrade linux-image-6.5.0-1026-oracleUpgrade linux-image-5.15.0-1063-awsUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-1056-ibmUpgrade linux-image-5.15.0-1065-azure-fdeUpgrade linux-image-5.15.0-1058-nvidia-lowlatencyUpgrade linux-image-azure-fdeUpgrade linux-image-5.15.0-1061-oracleUpgrade linux-image-gke-5.15Upgrade linux-image-nvidia-64k-6.5Upgrade linux-image-oem-20.04dUpgrade linux-image-oem-22.04aUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-6.5.0-1024-azure-fdeUpgrade linux-image-6.5.0-1027-oemUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-intel-iotgUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-6.5.0-1023-nvidia-64kUpgrade linux-image-intelUpgrade linux-image-gkeUpgrade linux-image-lowlatency-64kUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-113-generic-lpaeUpgrade linux-image-5.15.0-1060-gkeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-oem-22.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-5.15.0-112-generic-lpaeUpgrade linux-image-5.15.0-1066-azureUpgrade linux-image-oem-22.04cUpgrade linux-image-5.15.0-112-generic-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oracleUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-oem-22.04dUpgrade linux-image-5.15.0-1060-kvmUpgrade linux-image-nvidiaUpgrade linux-image-6.5.0-44-lowlatencyUpgrade linux-image-5.15.0-1058-intel-iotgUpgrade linux-image-virtualUpgrade linux-image-generic-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oem-20.04cUpgrade linux-image-oem-20.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-generic-lpaeUpgrade linux-image-gkeopUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-genericUpgrade linux-image-oem-20.04bUpgrade linux-image-6.5.0-1024-azureUpgrade linux-image-6.5.0-44-genericUpgrade linux-image-5.15.0-1057-ibmUpgrade linux-image-5.15.0-1030-xilinx-zynqmpUpgrade linux-image-6.5.0-1023-awsUpgrade linux-image-5.15.0-113-genericUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.5.0-1020-raspiUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-generic-lpae-hwe-20.04 | Jul 1, 2024 | Apr 4, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | Apr 4, 2024 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub