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
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-zfcpdump-modules-extraUpgrade kernel-docUpgrade kernel-rt-debug-kvmUpgrade perfUpgrade kernel-modules-extraUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-develUpgrade kernel-rt-debugUpgrade kernel-coreUpgrade kernel-rt-debug-develUpgrade kernelUpgrade kernel-modulesUpgrade kernel-zfcpdump-develUpgrade kernel-rt-coreUpgrade kernel-rt-develUpgrade kernel-rt-kvmUpgrade python3-perfUpgrade kernel-develUpgrade kernel-cross-headersUpgrade kernel-tools-libsUpgrade kernel-debugUpgrade bpftoolUpgrade kernel-debug-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modulesUpgrade kernel-rtUpgrade kernel-zfcpdump-modulesUpgrade kernel-debug-modules-extraUpgrade kernel-rt-modules-extraUpgrade kernel-rt-modulesUpgrade kernel-abi-stablelistsUpgrade kernel-headersUpgrade kernel-toolsUpgrade kernel-tools-libs-develUpgrade kernel-zfcpdump-core | 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 kernel-debug-modulesUpgrade kernel-tools-libsUpgrade kernel-debugUpgrade kernel-develUpgrade kernel-modules-extraUpgrade kernel-debuginfoUpgrade kernel-rt-coreUpgrade perf-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debug-modules-extraUpgrade bpftoolUpgrade kernel-debug-coreUpgrade kernel-rt-debuginfoUpgrade kernel-debug-develUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-debugUpgrade kernel-rt-debug-develUpgrade kernel-headersUpgrade python3-perf-debuginfoUpgrade kernel-coreUpgrade kernel-tools-debuginfoUpgrade kernel-debug-debuginfoUpgrade kernel-rt-debug-debuginfoUpgrade kernel-modulesUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-debug-coreUpgrade bpftool-debuginfoUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-develUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-rt-modulesUpgrade kernel-toolsUpgrade kernel-tools-libs-develUpgrade kernel-rt-modules-extraUpgrade perfUpgrade kernelUpgrade python3-perfUpgrade kernel-rtUpgrade kernel-rt-kvmUpgrade kernel-cross-headers | Aug 22, 2024 | Apr 4, 2024 |
| Suse | — | Upgrade kselftests-kmp-defaultUpgrade reiserfs-kmp-azureUpgrade dtb-armUpgrade kernel-sourceUpgrade ocfs2-kmp-rtUpgrade dtb-allwinnerUpgrade dtb-exynosUpgrade kernel-64kb-develUpgrade cluster-md-kmp-64kbUpgrade kernel-default-optionalUpgrade kernel-devel-azureUpgrade dtb-sprdUpgrade kernel-docsUpgrade ocfs2-kmp-azureUpgrade dtb-qcomUpgrade dtb-xilinxUpgrade kernel-symsUpgrade kernel-obs-qaUpgrade kernel-rtUpgrade dlm-kmp-rtUpgrade kernel-devel-rtUpgrade kernel-kvmsmallUpgrade dtb-rockchipUpgrade dtb-nvidiaUpgrade dtb-apmUpgrade dtb-mediatekUpgrade kselftests-kmp-rtUpgrade kernel-debugUpgrade kernel-default-extraUpgrade kernel-macrosUpgrade kernel-develUpgrade reiserfs-kmp-defaultUpgrade ocfs2-kmp-defaultUpgrade dlm-kmp-azureUpgrade kernel-defaultUpgrade kernel-rt-livepatchUpgrade kernel-default-base-rebuildUpgrade cluster-md-kmp-defaultUpgrade cluster-md-kmp-rtUpgrade kernel-syms-azureUpgrade kernel-default-vdsoUpgrade kernel-rt-develUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-appleUpgrade gfs2-kmp-defaultUpgrade dtb-alteraUpgrade dlm-kmp-64kbUpgrade dtb-hisiliconUpgrade kernel-source-rtUpgrade kernel-rt-livepatch-develUpgrade kernel-azure-vdsoUpgrade kernel-64kbUpgrade dtb-lgUpgrade dlm-kmp-defaultUpgrade reiserfs-kmp-64kbUpgrade kernel-azure-develUpgrade kernel-azureUpgrade kernel-rt_debugUpgrade dtb-socionextUpgrade ocfs2-kmp-64kbUpgrade kselftests-kmp-64kbUpgrade kernel-source-vanillaUpgrade kernel-source-azureUpgrade dtb-renesasUpgrade dtb-freescaleUpgrade dtb-amlogicUpgrade dtb-amazonUpgrade cluster-md-kmp-azureUpgrade kernel-debug-develUpgrade kernel-rt_debug-develUpgrade gfs2-kmp-azureUpgrade reiserfs-kmp-rtUpgrade kernel-rt-vdsoUpgrade kernel-rt-optionalUpgrade kernel-azure-optionalUpgrade kernel-64kb-livepatch-develUpgrade kernel-64kb-extraUpgrade dtb-amdUpgrade kernel-rt_debug-vdsoUpgrade kernel-kvmsmall-vdsoUpgrade gfs2-kmp-64kbUpgrade kernel-syms-rtUpgrade kselftests-kmp-azureUpgrade kernel-docs-htmlUpgrade kernel-default-baseUpgrade kernel-azure-extraUpgrade kernel-rt-extraUpgrade kernel-obs-buildUpgrade kernel-zfcpdumpUpgrade kernel-azure-livepatch-develUpgrade kernel-64kb-optionalUpgrade dtb-broadcomUpgrade kernel-kvmsmall-develUpgrade kernel-debug-vdsoUpgrade kernel-debug-livepatch-develUpgrade gfs2-kmp-rtUpgrade dtb-marvellUpgrade dtb-caviumUpgrade kernel-default-livepatch-develUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-default-livepatchUpgrade kernel-default-devel | Jun 24, 2024 | Apr 4, 2024 |
| Ubuntu | — | Upgrade linux-image-oem-22.04Upgrade linux-image-intelUpgrade linux-image-5.15.0-113-genericUpgrade linux-image-gkeUpgrade linux-image-oem-20.04bUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.5.0-44-genericUpgrade linux-image-azure-lts-22.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.15.0-1066-azureUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1030-xilinx-zynqmpUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-oracleUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.15.0-1058-intel-iotgUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1060-kvmUpgrade linux-image-oem-20.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-5.15.0-1060-gkeUpgrade linux-image-generic-lpaeUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-oem-22.04cUpgrade linux-image-5.15.0-1057-ibmUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-oem-22.04dUpgrade linux-image-6.5.0-1020-raspiUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-112-generic-lpaeUpgrade linux-image-gkeopUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-nvidiaUpgrade linux-image-6.5.0-44-lowlatencyUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.5.0-1024-azureUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-113-generic-lpaeUpgrade linux-image-gkeop-5.15Upgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-112-generic-64kUpgrade linux-image-genericUpgrade linux-image-6.5.0-1023-nvidia-64kUpgrade linux-image-virtualUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-20.04cUpgrade linux-image-6.5.0-1023-awsUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-6.5.0-44-generic-64kUpgrade linux-image-6.5.0-1026-oracle-64kUpgrade linux-image-6.5.0-1026-oracleUpgrade linux-image-6.5.0-1017-starfiveUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.5.0-1023-nvidiaUpgrade linux-image-5.15.0-1062-gcpUpgrade linux-image-5.15.0-110-lowlatencyUpgrade linux-image-5.15.0-113-generic-64kUpgrade linux-image-lowlatencyUpgrade linux-image-gcpUpgrade linux-image-starfiveUpgrade linux-image-oem-20.04dUpgrade linux-image-6.5.0-1027-oemUpgrade linux-image-5.15.0-1065-azure-fdeUpgrade linux-image-5.15.0-1056-ibmUpgrade linux-image-5.15.0-1061-oracleUpgrade linux-image-azure-fdeUpgrade linux-image-awsUpgrade linux-image-oem-22.04aUpgrade linux-image-6.5.0-44-lowlatency-64kUpgrade linux-image-6.5.0-1024-azure-fdeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-raspi-nolpaeUpgrade linux-image-kvmUpgrade linux-image-5.15.0-1063-awsUpgrade linux-image-oracle-64kUpgrade linux-image-aws-lts-22.04Upgrade linux-image-nvidia-64k-6.5Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-112-genericUpgrade linux-image-5.15.0-1058-nvidiaUpgrade linux-image-6.5.0-1024-gcpUpgrade linux-image-5.15.0-110-lowlatency-64kUpgrade linux-image-5.15.0-1046-gkeopUpgrade linux-image-nvidia-6.5Upgrade linux-image-5.15.0-1058-nvidia-lowlatencyUpgrade linux-image-gke-5.15Upgrade linux-image-oem-22.04bUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-ibmUpgrade linux-image-azureUpgrade linux-image-raspi | 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 |
Prioritise with Active Threat Intelligence
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