Executive brief
A vulnerability in the Linux kernel's macb network driver can cause network connectivity issues and memory leaks on certain hardware, such as AMD ZynqMp boards. When the system resumes from a suspended state, the network driver may fail to properly manage its internal data queues, leading to lost data packets and stalled network traffic. This can result in significant delays when accessing network-based file systems or other critical network services after a system sleep.
Technical details
A race condition and logic error exist in the macb driver's handling of the transmit (TX) ring buffer during link-up events, particularly after a suspend/resume cycle. The driver incorrectly resets the queue head and tail pointers to zero without accounting for the hardware's behavior of resetting the buffer queue pointer when transmit is disabled. This leads to three primary issues: memory leaks from unreleased socket buffers (skbs), potential concurrent write access to queue pointers, and a desynchronization where the driver assumes the queue is empty while the hardware is stuck on a previously sent packet. The fix involves implementing a juggling algorithm to rotate the TX ring so the first unsent packet aligns with the hardware's reset position and adding proper spinlock protection.
Affected products
- Linux Linux Kernel Fixed in 0a47c3889fcd843c72aa57fa8c4d06f5801fced4, 403182e0771b250cfde0fe7e1081d095ceaf8230, 58f5d34f88e8f00910b692537f7b2efdb8c3705d, 881a0263d502e1a93ebc13a78254e9ad19520232, 88f974fe118cb4653f029929ecbca7cfe06132ae, c6783bfa31a59f34fe4feb1bdbf67791ef3fb0b7
Timeline
- 2026-03-18: patched: Initial patch authored by Kevin Hao
- 2026-05-08: disclosed: CVE published
References
- https://git.kernel.org/stable/c/0a47c3889fcd843c72aa57fa8c4d06f5801fced4
- https://git.kernel.org/stable/c/403182e0771b250cfde0fe7e1081d095ceaf8230
- https://git.kernel.org/stable/c/58f5d34f88e8f00910b692537f7b2efdb8c3705d
- https://git.kernel.org/stable/c/881a0263d502e1a93ebc13a78254e9ad19520232
- https://git.kernel.org/stable/c/88f974fe118cb4653f029929ecbca7cfe06132ae
- https://git.kernel.org/stable/c/c6783bfa31a59f34fe4feb1bdbf67791ef3fb0b7