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