CVE-2026-64274: Input: goodix - clamp the device-reported contact count

Published Jul 25, 2026
·
Updated

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

Input: goodix - clamp the device-reported contact count

goodixtsreadinputreport() copies the number of touch points reported by the device into an on-stack buffer

u8 pointdata[2 + GOODIXMAXCONTACTSIZE GOODIXMAXCONTACTS];

which is sized for at most GOODIXMAXCONTACTS (10) contacts. The only runtime check bounds the per-interrupt count against ts->maxtouchnum, but that value is taken verbatim from a 4-bit field of the device configuration block and is never clamped:

ts->maxtouchnum = ts->config[MAXCONTACTSLOC] & 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. goodixtsreadinputreport() then accepts a touchnum of up to 15 and the second goodixi2cread() writes ts->contactsize (touchnum - 1) bytes past the one-contact header into pointdata - up to 30 bytes (45 with the 9-byte report format) beyond the 92-byte buffer: a stack out-of-bounds write.

Clamp maxtouchnum to GOODIXMAXCONTACTS, the number of contacts pointdata[] is sized for, when reading it from the configuration.

Affected Software

8 affected components
Linux Linux kernel
Linux Linux kernel>=4.1<5.10.261
Linux Linux kernel>=5.11<5.15.212
Linux Linux kernel>=5.16<6.1.178
Linux Linux kernel>=6.2<6.6.145
Linux Linux kernel>=6.7<6.12.96
Linux Linux kernel>=6.13<6.18.39
Linux Linux kernel>=6.19<7.1.4

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Modify goodix_ts_read_input_report() to clamp the device-reported contact count: set ts->max_touch_num from ts->config[MAX_CONTACTS_LOC] & 0x0f (nibble 0..15) and enforce a runtime bounds check so the per-interrupt touch count is capped (up to 15), preventing out-of-bounds writes when reading point_data into the on-stack buffer sized for GOODIX_MAX_CONTACTS (10) contacts.

    Linux kernel - goodix_ts_input_report (goodix) Clamp device-reported touch count (touch_num / max_touch_num) = Clamp touch_num to GOODIX_MAX_CONTACTS (number of contacts); max_touch_num = ts->config[MAX_CONTACTS_LOC] & 0x0f; runtime bounds check caps per-interrupt count to 15 contacts

Event History

Jul 25, 2026
CVE Published
via MITRE·08:49 AM
Data Sourced
via MITRE·08:49 AM
Description
Data Sourced
via NVD·10:17 AM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-64274?

The severity of CVE-2026-64274 is classified as high with a score of 7.8.

2

How do I fix CVE-2026-64274?

To fix CVE-2026-64274, it is recommended to update to the patched version of the Linux kernel that resolves this vulnerability.

3

What systems are affected by CVE-2026-64274?

CVE-2026-64274 affects the Linux kernel specifically in the goodix driver for touch input devices.

4

What is the impact of CVE-2026-64274 on device security?

CVE-2026-64274 can lead to denial of service or potentially allow unauthorized access through improper handling of touch input data.

5

When was CVE-2026-64274 published?

CVE-2026-64274 was published on July 25, 2026.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203