tcp: fix skb_copy_ubufs() vs BIG TCP
- 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.1.29, 6.2.16, 6.3.3
- 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: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: tcp: fix skb_copy_ubufs() vs BIG TCP David Ahern reported crashes in skb_copy_ubufs() caused by TCP tx zerocopy using hugepages, and skb length bigger than ~68 KB. skb_copy_ubufs() assumed it could copy all payload using up to MAX_SKB_FRAGS order-0 pages. This assumption broke when BIG TCP was able to put up to 512 KB per skb. We did not hit this bug at Google because we use CONFIG_MAX_SKB_FRAGS=45 and limit gso_max_size to 180000. A solution is to use higher order pages if needed. v2: add missing __GFP_COMP, or we leak memory.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 7c4e983c4f3cf94fcd879730c6caa877e0768a4d · fixed in 7fa93e39fbb0566019c388a8038a4d58552e0910; From 7c4e983c4f3cf94fcd879730c6caa877e0768a4d · fixed in 3c77a377877acbaf03cd7caa21d3644a5dd16301; From 7c4e983c4f3cf94fcd879730c6caa877e0768a4d · fixed in 9cd62f0ba465cf647c7d8c2ca7b0d99ea0c1328f; From 7c4e983c4f3cf94fcd879730c6caa877e0768a4d · fixed in 7e692df3933628d974acb9f5b334d2b3e885e2a6
- Linux Linux
5.19
- KernelLinux
From 5.19.0 · fixed in 6.1.29; From 6.2.0 · fixed in 6.2.16; From 6.3.0 · fixed in 6.3.3