CVE-2026-64274CWE-787

CVE-2026-64274

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: goodix - clamp the device-reported contact count

goodix_ts_read_input_report() copies the number of touch points reported

by the device into an on-stack buffer

u8 point_data[2 + GOODIX_MAX_CONTACT_SIZE * GOODIX_MAX_CONTACTS];

which is sized for at most GOODIX_MAX_CONTACTS (10) contacts. The only

runtime check bounds the per-interrupt count against ts->max_touch_num,

but that value is taken verbatim from a 4-bit field of the device

configuration block and is never clamped:

ts->max_touch_num = ts->config[MAX_CONTACTS_LOC] & 0x0f;

The nibble can be 0..15, so a malfunctioning, malicious or counterfeit

controller (or an attacker tampering with the I2C bus) can advertise up

to 15 contacts. goodix_ts_read_input_report() then accepts a touch_num

of up to 15 and the second goodix_i2c_read() writes

ts->contact_size * (touch_num - 1) bytes past the one-contact header into

point_data - up to 30 bytes (45 with the 9-byte report format) beyond the

92-byte buffer: a stack out-of-bounds write.

Clamp max_touch_num to GOODIX_MAX_CONTACTS, the number of contacts

point_data[] is sized for, when reading it from the configuration.

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-787 · Out-of-bounds Write
Published
2026-07-25T14:17Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel≥ 4.1, < 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: goodix - clamp the device-reported contact count
    cvelistv5