CVE-2026-64274

Input: goodix - clamp the device-reported contact count

State
Published
Severity
Not scored
Published
Jul 25, 2026
Updated
Aug 17, 2026
Reserved
Jul 19, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • a7ac7c95d4682883d141c5d7a7544d2818f0a09f to before e825f352ef5271255cd08cc994b0dc25648a2f38Affected
  • a7ac7c95d4682883d141c5d7a7544d2818f0a09f to before 4bfea9c3a0981c1c7fc5d1a1b27197b2de247902Affected
  • a7ac7c95d4682883d141c5d7a7544d2818f0a09f to before 98b2caef249183b572c04451365246f919707845Affected
  • a7ac7c95d4682883d141c5d7a7544d2818f0a09f to before 719d1a2c83a46be6bf81af905e4f6adb3d32dc28Affected
  • a7ac7c95d4682883d141c5d7a7544d2818f0a09f to before 46addbd13dbf4aacb71cfbca964a5e552d0f45aeAffected
  • a7ac7c95d4682883d141c5d7a7544d2818f0a09f to before 3b32303460155603d25444274856013d211d5e1fAffected
  • a7ac7c95d4682883d141c5d7a7544d2818f0a09f to before 2a67668690129953e898923260a2dd1c7c196495Affected
  • a7ac7c95d4682883d141c5d7a7544d2818f0a09f to before 5ed62a96e06be4e94b8296b7932afee550a70e04Affected
LinuxLinux
  • 4.1Affected
  • before 4.1Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.96 through 6.12.*Not affected
  • 6.18.39 through 6.18.*Not affected
  • 7.1.4 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.