NTB: ntb_netdev: Preserve RX queue depth on allocation failure
- 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.10.267, 5.15.218, 6.1.185, 6.6.154, 6.12.106, and 2 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: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: NTB: ntb_netdev: Preserve RX queue depth on allocation failure ntb_netdev_rx_handler() hands the received skb to the network stack before allocating its replacement. If the allocation fails, nothing is reposted. Every failure therefore takes one buffer out of the RX queue while the interface remains up, and enough failures eventually stall reception. A retry path could refill the queue later, but ntb_netdev has none. Allocate the replacement first instead. If that fails, drop the packet and repost the same skb. This keeps the queue full and lets packet delivery resume as soon as memory is available again.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 548c237c0a9972df5d1afaca38aa733ee577128d · fixed in 6d7f8a23c130d768c0976c2578b214353674e18f; From 548c237c0a9972df5d1afaca38aa733ee577128d · fixed in 18781cc0bfb5c7f2a51ac6d678a28f101b7c35c5; From 548c237c0a9972df5d1afaca38aa733ee577128d · fixed in 272df0fbe6f3e04e22bc67fbdd9ac24586b942f4; From 548c237c0a9972df5d1afaca38aa733ee577128d · fixed in fcaf8ba7e56bb73319ac107a63b907d59536192c; From 548c237c0a9972df5d1afaca38aa733ee577128d · fixed in 3f2a15f33f86f7bd5b920669fd40c06725d72a1e; From 548c237c0a9972df5d1afaca38aa733ee577128d · fixed in a4e340971fe8ccd245d206db4d43b2a0eec240bd; From 548c237c0a9972df5d1afaca38aa733ee577128d · fixed in 755fd7843f300d724caceabdf9bb13adc8701540; From 548c237c0a9972df5d1afaca38aa733ee577128d · fixed in d2121faf133ac3bf9531b53a7e21273649a08517
- Linux Linux
3.9
- KernelLinux
From 3.9.0 · fixed in 5.10.267; From 5.11.0 · fixed in 5.15.218; From 5.16.0 · fixed in 6.1.185; From 6.2.0 · fixed in 6.6.154; From 6.7.0 · fixed in 6.12.106; From 6.13.0 · fixed in 6.18.46; From 6.19.0 · fixed in 7.1.9
References 8
git.kernel.org
- stable/c/6d7f8a23c130d768c0976c2578b214353674e18f
- stable/c/18781cc0bfb5c7f2a51ac6d678a28f101b7c35c5
- stable/c/272df0fbe6f3e04e22bc67fbdd9ac24586b942f4
- stable/c/fcaf8ba7e56bb73319ac107a63b907d59536192c
- stable/c/3f2a15f33f86f7bd5b920669fd40c06725d72a1e
- stable/c/a4e340971fe8ccd245d206db4d43b2a0eec240bd
- stable/c/755fd7843f300d724caceabdf9bb13adc8701540
- stable/c/d2121faf133ac3bf9531b53a7e21273649a08517