Executive brief
A vulnerability in the Linux kernel's ks8851 Ethernet driver could cause a system to freeze or crash (deadlock) during network activity. This occurs when the system tries to process incoming and outgoing data simultaneously, leading to a conflict in internal software locks. This issue primarily affects system stability and availability, potentially causing a denial of service for devices using this specific network hardware.
Technical details
A deadlock vulnerability exists in the ks8851 Ethernet driver within the Linux kernel. The issue is rooted in the IRQ handler `ks8851_irq()`, which may trigger a TX softirq via `netif_wake_queue()` while holding a spinlock. If a packet is received simultaneously, `ks8851_rx_pkts()` calls `netdev_alloc_skb_ip_align()`, which may re-enable bottom halves (BH) and trigger the pending TX softirq. This softirq then attempts to acquire the same spinlock already held by the IRQ handler, resulting in a deadlock. This is particularly reproducible on kernels with `CONFIG_PREEMPT_RT` enabled but can also occur on standard kernels. The fix involves reinstating the disabling of bottom halves around critical sections in the IRQ handler to prevent premature softirq execution.
Affected products
- Linux Linux Kernel ks8851 driver versions prior to the fix
Timeline
- 2026-04-16: other: Patch authored
- 2026-05-27: advisory: CVE-2026-46031 published
References
- https://git.kernel.org/stable/c/21f1707a8e978558dcb11b053855521e32ac0eec
- https://git.kernel.org/stable/c/518040324067d8efaa2da1992297b7e7bf5640f4
- https://git.kernel.org/stable/c/5c9fcac3c872224316714d0d8914d9af16c76a6d
- https://git.kernel.org/stable/c/640a7631d31db87d5fa1b34cea44a99b6e78854b
- https://git.kernel.org/stable/c/be8aad558b4675f45b43080f81a9ffdeddea73a5