net: mvpp2: refill RX buffers before XDP or skb use
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.8, 5.9, 5.15.210, 6.1.176, 6.6.143, and 3 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: total
Summary
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.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 07dd0a7aae7f72af7cec18909581c2bb570edddc · fixed in a88b3293b556f4d8fba11db9a8061a6b0d3b69e6; From 07dd0a7aae7f72af7cec18909581c2bb570edddc · fixed in a03cdcedb2cbcc42551dc3e4746929e93c5352d5; From 07dd0a7aae7f72af7cec18909581c2bb570edddc · fixed in 580f92f27cb8724bcc4be98ee89890eab524a2ae; From 07dd0a7aae7f72af7cec18909581c2bb570edddc · fixed in d0c8c4fbd22d260fe28530260656c5fb3c20ce84; From 07dd0a7aae7f72af7cec18909581c2bb570edddc · fixed in 8a2126c5afe89f8ceeb60a3afb9f075b736194cd; From 07dd0a7aae7f72af7cec18909581c2bb570edddc · fixed in 02e1b5c4d3b4c658b72c145427cded1bba613fc1; From 07dd0a7aae7f72af7cec18909581c2bb570edddc · fixed in 5e8e2a9624df72fca7c736b2966b2cbf6c9c3ff6; From 5.7.15 · fixed in 5.8; From 5.8.2 · fixed in 5.9
- Linux Linux
5.9
- KernelLinux
From 5.9.0 · fixed in 5.15.210; From 5.16.0 · fixed in 6.1.176; From 6.2.0 · fixed in 6.6.143; From 6.7.0 · fixed in 6.12.94; From 6.13.0 · fixed in 6.18.36; From 6.19.0 · fixed in 7.0.13
References 7
git.kernel.org
- stable/c/a88b3293b556f4d8fba11db9a8061a6b0d3b69e6
- stable/c/a03cdcedb2cbcc42551dc3e4746929e93c5352d5
- stable/c/580f92f27cb8724bcc4be98ee89890eab524a2ae
- stable/c/d0c8c4fbd22d260fe28530260656c5fb3c20ce84
- stable/c/8a2126c5afe89f8ceeb60a3afb9f075b736194cd
- stable/c/02e1b5c4d3b4c658b72c145427cded1bba613fc1
- stable/c/5e8e2a9624df72fca7c736b2966b2cbf6c9c3ff6