![]() |
Home ▼ Bookkeeping
Online ▼ Security
Audits ▼
Managed
DNS ▼
About
Order
FAQ
Acceptable Use Policy
Dynamic DNS Clients
Configure Domains Dyanmic DNS Update Password Network
Monitor ▼
Enterprise Package
Advanced Package
Standard Package
Free Trial
FAQ
Price/Feature Summary
Order/Renew
Examples
Configure/Status Alert Profiles | ||
CVE ID: | CVE-2024-26802 |
Description: | 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 |
Test IDs: | None available |
Cross References: |
Common Vulnerability Exposure (CVE) ID: CVE-2024-26802 https://git.kernel.org/stable/c/17ccd9798fe0beda3db212cfa3ebe373f605cbd6 https://git.kernel.org/stable/c/17ccd9798fe0beda3db212cfa3ebe373f605cbd6 https://git.kernel.org/stable/c/699b103e48ce32d03fc86c35b37ee8ae4288c7e3 https://git.kernel.org/stable/c/699b103e48ce32d03fc86c35b37ee8ae4288c7e3 https://git.kernel.org/stable/c/8af411bbba1f457c33734795f024d0ef26d0963f https://git.kernel.org/stable/c/8af411bbba1f457c33734795f024d0ef26d0963f https://git.kernel.org/stable/c/8e99556301172465c8fe33c7f78c39a3d4ce8462 https://git.kernel.org/stable/c/8e99556301172465c8fe33c7f78c39a3d4ce8462 https://git.kernel.org/stable/c/f72cf22dccc94038cbbaa1029cb575bf52e5cbc8 https://git.kernel.org/stable/c/f72cf22dccc94038cbbaa1029cb575bf52e5cbc8 |