CVE-2026-43371
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
08/05/2026
Última modificación:
08/05/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
net: macb: Shuffle the tx ring before enabling tx<br />
<br />
Quanyang observed that when using an NFS rootfs on an AMD ZynqMp board,<br />
the rootfs may take an extended time to recover after a suspend.<br />
Upon investigation, it was determined that the issue originates from a<br />
problem in the macb driver.<br />
<br />
According to the Zynq UltraScale TRM [1], when transmit is disabled,<br />
the transmit buffer queue pointer resets to point to the address<br />
specified by the transmit buffer queue base address register.<br />
<br />
In the current implementation, the code merely resets `queue->tx_head`<br />
and `queue->tx_tail` to &#39;0&#39;. This approach presents several issues:<br />
<br />
- Packets already queued in the tx ring are silently lost,<br />
leading to memory leaks since the associated skbs cannot be released.<br />
<br />
- Concurrent write access to `queue->tx_head` and `queue->tx_tail` may<br />
occur from `macb_tx_poll()` or `macb_start_xmit()` when these values<br />
are reset to &#39;0&#39;.<br />
<br />
- The transmission may become stuck on a packet that has already been sent<br />
out, with its &#39;TX_USED&#39; bit set, but has not yet been processed. However,<br />
due to the manipulation of &#39;queue->tx_head&#39; and &#39;queue->tx_tail&#39;,<br />
`macb_tx_poll()` incorrectly assumes there are no packets to handle<br />
because `queue->tx_head == queue->tx_tail`. This issue is only resolved<br />
when a new packet is placed at this position. This is the root cause of<br />
the prolonged recovery time observed for the NFS root filesystem.<br />
<br />
To resolve this issue, shuffle the tx ring and tx skb array so that<br />
the first unsent packet is positioned at the start of the tx ring.<br />
Additionally, ensure that updates to `queue->tx_head` and<br />
`queue->tx_tail` are properly protected with the appropriate lock.<br />
<br />
[1] https://docs.amd.com/v/u/en-US/ug1085-zynq-ultrascale-trm
Impacto
Referencias a soluciones, herramientas e información
- 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



