net: bcmasp: clear txcb->last before writing each descriptor
- 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 6.6.158, 6.12.111, 6.18.53, 7.2.7
- 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
Summary
In the Linux kernel, the following vulnerability has been resolved: net: bcmasp: clear txcb->last before writing each descriptor bcmasp_xmit() only wrote txcb->last = true for the final fragment of an SKB; non-final fragments left the field untouched. If a descriptor slot was reused while it still held a stale true from a previous SKB (possible when tx_spb_ring_full() underreported fullness), bcmasp_tx_reclaim() would see last == true mid-SKB and call dev_consume_skb_any() prematurely, freeing the sk_buff while its remaining fragments were still in flight. Unconditionally clear txcb->last before the conditional set so every descriptor slot starts from a known false state regardless of what a prior transmission left behind.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 490cb412007de593e07c1d3e2b1ec4233886707c · fixed in 1e213ba7cb3b9dd97ac2e0a1054e6d0d1d91f5bc; From 490cb412007de593e07c1d3e2b1ec4233886707c · fixed in 9b26b54861ce05307d39a54ddedddf8747419614; From 490cb412007de593e07c1d3e2b1ec4233886707c · fixed in 47a5cecca925ceb175d5adf712e667acf78f475f; From 490cb412007de593e07c1d3e2b1ec4233886707c · fixed in 17e6ad484dea5ddf1c4a3d6ec77a5929161234de; From 490cb412007de593e07c1d3e2b1ec4233886707c · fixed in 18e5e0ec0e9282c897e2aa81a3e43ccaee03b003
- Linux Linux
6.6
- KernelLinux
From 6.6.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.2.7