CVE-2026-63960: Linux kernel · usb: typec: wcove: don't write past struct pd_message in wcove_read_rx_buffer()
Affects Linux kernelSource GCVE Database
Not known to be exploited.
Data as of 30 Oct 2026, 15:48 UTC
Rated High by Threat Radar's AI analysis · No CVSS score from NVD or the CNA
Thin evidence
One scorer or noneExploitation evidence
Disclosed: evidence found.
CVE published 19 Jul 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
AI-suggested
A fix has been implemented in the Linux kernel that clamps the copy loop to the size of struct pd_message and ensures only the low byte of each register read is stored, preventing out-of-bounds writes. Users should update to the fixed kernel version once available. No other mitigation steps are indicated by the vendor advisory.
Description
A vulnerability in the Linux kernel's USB Type-C wcove driver allows writing beyond the bounds of a struct pd_message in the wcove_read_rx_buffer() function. This occurs due to improper handling of the RX byte count and the way regmap_read() writes data, potentially causing stack corruption. The issue arises when a malicious port partner sends a 31-byte frame, exceeding the 30-byte struct size, and the code writes four bytes per iteration instead of one, leading to out-of-bounds writes.
References
- git.kernel.org/stable/c/3e632098d0521257ea965bbd6fde807d9bee5c8a (opens in a new tab)
- git.kernel.org/stable/c/f2a1edc0bd142edabc6c85d88713f2bc178dd317 (opens in a new tab)
- git.kernel.org/stable/c/6899f5b6d7b83ce79a3d331dc61dd31bf73f9c22 (opens in a new tab)
- git.kernel.org/stable/c/5cd0e7ac4eefbdb330f8c72694fe74e63df65552 (opens in a new tab)
- git.kernel.org/stable/c/d0e4b8b3c6b7607a16932556eaaca5d5cf69f192 (opens in a new tab)
- git.kernel.org/stable/c/e94933dc41b87503bf585c8c6d53d740620eceb9 (opens in a new tab)
- git.kernel.org/stable/c/3f9d50c8b02b4af0646aa892465080f9061fc89c (opens in a new tab)
- git.kernel.org/stable/c/4af7ad0e6d7aa4403dbb1dac7b9659b0421efcaa (opens in a new tab)