CVE-2024-38553·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: net: fec: remove .ndo_poll_controller to avoid deadlocks There is a deadlock issue found in sungem driver, please refer to the commit ac0a230f719b ("eth: sungem: remove .ndo_poll_controller to avoid deadlocks"). The root cause of the issue is that netpoll is in atomic context and disable_irq() is called by .ndo_poll_controller interface of sungem driver, however, disable_irq() might sleep. After analyzing the implementation of fec_poll_controller(), the fec driver should have the same issue. Due to the fec driver uses NAPI for TX completions, the .ndo_poll_controller is unnecessary to be implemented in the fec driver, so fec_poll_controller() can be safely removed.
- Severity
- medium
- Software
- Kernel
- Fixed in
- 6.9.3
- Published
- 2024-06-19
Affected versions
From: 6.9
Until: 6.9.3
Fixed in: 6.9.3
How to fix this CVE
Update your Linux kernel to version 6.9.3 or later to resolve a deadlock vulnerability in the FEC network driver. The vulnerability stems from the ndo_poll_controller interface calling disable_irq() within atomic netpoll context, which can cause the system to hang. Kernel versions 6.9 through 6.9.2 are affected; upgrading removes the problematic polling controller implementation entirely since the driver relies on NAPI for packet completions.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Check installed kernel version: uname -r — if output shows 6.9.0, 6.9.1, or 6.9.2, your system is vulnerable.
- Verify FEC driver is in use: grep -i 'fec' /proc/net/dev or ethtool -i <interface> | grep driver — if FEC is the driver, the vulnerability applies.
- Search system logs for netpoll deadlock indicators: grep -i 'BUG: soft lockup' /var/log/kern.log or journalctl | grep 'lockup' — look for patterns occurring during network activity.
- Confirm fix is applied: uname -r should show 6.9.3 or later, and verify with: grep 'fec_poll_controller' /proc/config.gz — the function should not appear in the running kernel configuration.
FAQ
What is CVE-2024-38553?
CVE-2024-38553 is a kernel deadlock vulnerability in the Freescale Ethernet Controller (FEC) driver caused by the ndo_poll_controller interface invoking disable_irq() while running in netpoll's atomic context, potentially freezing the system during network polling operations.
Is CVE-2024-38553 being actively exploited?
No, this vulnerability is not listed in the CISA KEV catalog and no public exploits are available. However, it can be triggered through normal network activity on affected systems, causing availability disruption.
What versions of Kernel are affected by CVE-2024-38553?
Linux kernel versions 6.9.0, 6.9.1, and 6.9.2 are affected. The vulnerability was resolved in version 6.9.3 and later.
How do I check if my server is vulnerable to CVE-2024-38553?
Run 'uname -r' and check if the output is 6.9.0, 6.9.1, or 6.9.2; then verify the FEC driver is active with 'grep fec /proc/net/dev'. If both conditions are true, your system is vulnerable.
Does Defensia detect CVE-2024-38553?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2024-38553 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/87bcbc9b7e0b43a69d44efa5f32f11e32d08fa6f
- https://git.kernel.org/stable/c/accdd6b912c4219b8e056d1f1ad2e85bc66ee243
- https://git.kernel.org/stable/c/c2e0c58b25a0a0c37ec643255558c5af4450c9f5
- https://git.kernel.org/stable/c/d38625f71950e79e254515c5fc585552dad4b33e
- https://git.kernel.org/stable/c/e2348d8c61d03feece1de4c05f72e6e99f74c650
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-38553. Free for 1 server.
Get started free