CVE-2026-98687
NoneCVSS
—
EPSS
0.2%
Published
Oct 18, 2026
CISA due date
—
Cloudanix analysis
A small memory-handling mistake in the Linux kernel's Thunderbolt code could let a specially crafted connected device read a few bytes of memory it should not access, though real-world attacks are considered very unlikely.
- Exploitation
- Physical Access
- Attacker needs
- Physical Access
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap out-of-bounds read in Linux kernel thunderbolt driver: tb_xdp_properties_request allocates a 252-byte response buffer sized for 45 data dwords, but a malicious XDomain peer can supply a 6-bit length field of 63; after fixed fields the driver treats this as 48 dwords and performs an unbounded memcpy that reads 12 bytes past the 180-byte res->data allocation.
Why it matters to the business
Linux systems exposing Thunderbolt ports face a low-probability memory disclosure or crash risk from directly attached hardware; the issue is five days old with negligible exploitation likelihood and no known ransomware use, so immediate operational disruption is unlikely but kernel updates remain necessary for hardware fleets.
How an attack unfolds
An attacker presents a malicious Thunderbolt peer (device or second host) that responds to an XDomain properties request with a length field set to 63; the driver copies beyond its allocated buffer, performing a 12-byte heap read that may leak kernel memory or trigger a fault.
How to fix it
Apply the upstream fix that rejects XDomain response lengths exceeding the allocated source buffer before any copy; update to a kernel containing commit 322e93448d90 and 4db2bd2ed478 or later thunderbolt changes; rebuild and reboot affected systems.
How to confirm the fix worked
Confirm kernel source contains the length-rejection check in tb_xdp_properties_request; run targeted Thunderbolt XDomain fuzzing or inspect dmesg for prior OOB warnings; verify no oversized responses are processed after the patch.
Typical attack path
- Attacker connects malicious Thunderbolt endpoint to target system
- Kernel initiates XDomain properties exchange
- Peer returns oversized length field (63) in response header
- Driver computes data_len >= 48 and performs memcpy past allocated buffer
- 12-byte out-of-bounds read occurs, potentially disclosing kernel data or causing denial of service
How to detect it
Search kernel logs and audit trails for thunderbolt driver warnings or faults around XDomain property exchanges; examine dmesg or journalctl for memcpy-related or slab OOB messages; no network or file-based artifacts exist because exploitation requires direct hardware attachment.
What your security team should do
- Prioritize kernel updates on any Linux hosts with Thunderbolt hardware within standard patch windows
- Monitor EPSS and KEV status for any future rise in exploit maturity
- Restrict Thunderbolt ports via BIOS/firmware policy where XDomain is unnecessary
- Include thunderbolt driver in regression test suites for memory-safety tools
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|