Description
In the Linux kernel, the following vulnerability has been resolved: net: mvpp2: refill RX buffers before XDP or skb use The RX error path returns the current descriptor buffer to the hardware BM pool. That is only valid while the driver still owns the buffer. mvpp2_rx_refill() can fail after the current buffer has been handed to XDP or attached to an skb. In those cases mvpp2_run_xdp() may have recycled, redirected, or queued the page for XDP_TX, and an skb free also retires the data buffer. Returning such a buffer to BM lets hardware DMA into memory that is no longer owned by the RX ring. Refill the BM pool before handing the current buffer to XDP or to the skb. If the allocation fails there, drop the packet and return the still-owned current buffer to BM, preserving the pool depth. Once the refill succeeds, later local drops retire/free the current buffer instead of returning it to BM.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
07dd0a7aae7f72af7cec18909581c2bb570edddc to < a88b3293b556f4d8fba11db9a8061a6b0d3b69e6affected07dd0a7aae7f72af7cec18909581c2bb570edddc to < a03cdcedb2cbcc42551dc3e4746929e93c5352d5affected07dd0a7aae7f72af7cec18909581c2bb570edddc to < 580f92f27cb8724bcc4be98ee89890eab524a2aeaffected07dd0a7aae7f72af7cec18909581c2bb570edddc to < d0c8c4fbd22d260fe28530260656c5fb3c20ce84affected07dd0a7aae7f72af7cec18909581c2bb570edddc to < 8a2126c5afe89f8ceeb60a3afb9f075b736194cdaffected07dd0a7aae7f72af7cec18909581c2bb570edddc to < 02e1b5c4d3b4c658b72c145427cded1bba613fc1affected07dd0a7aae7f72af7cec18909581c2bb570edddc to < 5e8e2a9624df72fca7c736b2966b2cbf6c9c3ff6affected95a936364f2685e9e040c6b179b553604d96de22affectedfba2cf348d9eb50b2049a73cc09313dab6d293f1affected5.7.15 to < 5.8affected5.8.2 to < 5.9affected
Linux Linux
Default version status: affected
5.9affected0 to < 5.9unaffected5.15.210 to ≤ 5.15.*unaffected6.1.176 to ≤ 6.1.*unaffected6.6.143 to ≤ 6.6.*unaffected6.12.94 to ≤ 6.12.*unaffected6.18.36 to ≤ 6.18.*unaffected7.0.13 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/a88b3293b556f4d8fba11db9a8061a6b0d3b69e6 ↗
- https://git.kernel.org/stable/c/a03cdcedb2cbcc42551dc3e4746929e93c5352d5 ↗
- https://git.kernel.org/stable/c/580f92f27cb8724bcc4be98ee89890eab524a2ae ↗
- https://git.kernel.org/stable/c/d0c8c4fbd22d260fe28530260656c5fb3c20ce84 ↗
- https://git.kernel.org/stable/c/8a2126c5afe89f8ceeb60a3afb9f075b736194cd ↗
- https://git.kernel.org/stable/c/02e1b5c4d3b4c658b72c145427cded1bba613fc1 ↗
- https://git.kernel.org/stable/c/5e8e2a9624df72fca7c736b2966b2cbf6c9c3ff6 ↗