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