Executive brief
A vulnerability in the Linux kernel's networking driver for certain Freescale hardware could cause the system to hang or become unresponsive. This occurs due to a 'deadlock' where the system gets stuck waiting for internal resources that are already in use. This primarily affects real-time (RT) kernel configurations on specific industrial or networking hardware platforms, potentially leading to a complete service outage.
Technical details
A deadlock exists in the enetc networking driver due to recursive acquisition of the 'enetc_mdio_lock' read lock. In the enetc_poll path, the driver acquires a read lock; if a higher-priority writer attempts to acquire the same lock, it causes preemption. Subsequent attempts by the reader to re-acquire the lock (recursively) fail because a writer is already pending, leading to a thread hang and RCU stalls. This issue specifically impacts the LS1028A platform running a Real-Time (RT) kernel. The fix involves adjusting the locking logic in enetc_poll and associated RX/TX ring cleaning functions to prevent recursive acquisition.
Affected products
- Linux Linux Kernel LS1028A platform with RT kernel
Timeline
- 2025-12-16: advisory: CVE-2025-40347 published by kernel.org
- 2025-10-29: patched: Fix committed to stable kernel trees
References
- https://git.kernel.org/stable/c/1f92f5bd057a4fad9dab6af17963cdd21e5da6ed
- https://git.kernel.org/stable/c/2781ca82ce8cad263d80b617addb727e6a84c9e5
- https://git.kernel.org/stable/c/2e55a49dc3b2a6b23329e4fbbd8a5feb20e220aa
- https://git.kernel.org/stable/c/50bd33f6b3922a6b760aa30d409cae891cec8fb5
- https://git.kernel.org/stable/c/a649161526736f48bcc592e3a412e5bcd7dd9e24