CVE-2026-64271CWE-129

CVE-2026-64271

High · published July 25, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
5.9
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

Input: touchwin - reset the packet index on every complete packet

tw_interrupt() accumulates each non-zero serial byte into a fixed

three-byte buffer with a running index that is only reset once a full

packet has been received *and* the device's two Y bytes agree:

tw->data[tw->idx++] = data;

if (tw->idx == TW_LENGTH && tw->data[1] == tw->data[2]) {

...

tw->idx = 0;

}

The reset is gated on tw->data[1] == tw->data[2], a value the device

controls. A malicious, malfunctioning or counterfeit Touchwindow

peripheral can stream non-zero bytes whose 2nd and 3rd bytes differ: the

index reaches TW_LENGTH without the equality holding, is never reset, and

keeps growing, so tw->data[tw->idx++] walks off the end of the three-byte

array and the rest of the heap-allocated struct tw, one attacker-chosen

byte at a time -- an unbounded, device-driven heap out-of-bounds write.

Reset the index on every completed packet and report an event only when

the two Y bytes match, like the other serio touchscreen drivers do.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00169 · 5.9th percentile
Weakness
CWE-129 · Improper Validation of Array Index
Published
2026-07-25T14:17Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel≥ 2.6.19, < 5.10.2615.10.261
linux/linux_kernel≥ 5.11, < 5.15.2125.15.212
linux/linux_kernel≥ 5.16, < 6.1.1786.1.178
linux/linux_kernel≥ 6.2, < 6.6.1456.6.145
linux/linux_kernel≥ 6.7, < 6.12.966.12.96
linux/linux_kernel≥ 6.13, < 6.18.396.18.39
linux/linux_kernel≥ 6.19, < 7.1.47.1.4
References (8)
EPSS history
Timeline
  • 25 JUL 08:49Z
    Input: touchwin - reset the packet index on every complete packet
    cvelistv5