thunderbolt: Reject oversized XDomain properties responses
- 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.160, 6.12.113, 6.18.56, 7.2.10
- 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: thunderbolt: Reject oversized XDomain properties responses tb_xdp_properties_request() allocates room for 45 data dwords in its 252-byte response buffer. The XDomain length field is six bits wide, however, and a malicious peer can set it to 63. After the fixed response fields are subtracted, the driver treats this as 48 data dwords. Commit 322e93448d90 ("thunderbolt: Clamp XDomain response data copy to allocation size") only bounds the copy against data_len. If data_len is at least 48, memcpy() reads 192 bytes from the 180-byte res->data array, causing a 12-byte heap out-of-bounds read. Commit 4db2bd2ed478 ("thunderbolt: Limit XDomain response copy to actual frame size") limits the earlier copy but does not constrain this header-derived length. Reject response data lengths that exceed the allocated source buffer before copying them into the assembled property block.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
4.15
- KernelLinux
From 4.15.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.56; From 6.19.0 · fixed in 7.2.10
References 8
git.kernel.org
- stable/c/9fba032802b5858bc6186b34f8e966429ff155ab
- stable/c/7c028d2ae85eca86b82cab1163a9ac1187a2e666
- stable/c/37ea4304bd9f57ebe719409f010915495467f05c
- stable/c/b270c1074860de74da0d6b5250fb06b359b9d509
- stable/c/a766a86ff48acee76aeb8e2575771040749e509d
- stable/c/2f97f929dad9eb3e1f63b721d2dd49bf9bc68efa
- stable/c/737a1d2e9642d5f718bd29aa4a98b9eef3832f0a
- stable/c/80756e263846ab694984e749e8c626897331438f