Skip to main content

Linux Kernel EUVDEUVD-2026-48986

| CVE-2026-64274 HIGH
Out-of-bounds Write (CWE-787)
2026-07-25 Linux GHSA-pfx5-jw3v-f6mp
7.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
6.8 MEDIUM

CVE description explicitly requires I2C bus tampering or a malicious hardware controller, placing the realistic vector at Physical (AV:P) with no authentication needed for a hardware-based attack.

3.1 AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:P/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 13, 2026 - 18:41 vuln.today
CVSS changed
Aug 13, 2026 - 18:37 NVD
7.8 (HIGH)
Patch available
Jul 25, 2026 - 11:18 EUVD
CVE Published
Jul 25, 2026 - 08:49 nvd
HIGH 7.8
CVE Published
Jul 25, 2026 - 08:49 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

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.

AnalysisAI

Stack out-of-bounds write in the Linux kernel Goodix touchscreen driver allows kernel stack memory corruption through a malicious, counterfeit, or physically tampered Goodix I2C touchscreen controller that advertises more than the supported maximum of 10 contact points. All Linux kernel versions from 4.1 through the pre-patch stable series are affected on systems equipped with Goodix GT-series touchscreen hardware; patched releases are available across all active stable branches. No public exploit code exists and no active exploitation has been reported (absent from CISA KEV), with EPSS placing exploitation probability at 0.22%.

Technical ContextAI

The vulnerability resides in drivers/input/touchscreen/goodix.c, which handles Goodix GT-series capacitive touchscreen controllers over the I2C bus. The root cause (CWE-787, Out-of-bounds Write) is that ts->max_touch_num is populated from a 4-bit nibble in the device configuration block via 'ts->config[MAX_CONTACTS_LOC] & 0x0f', yielding values 0-15, without being clamped to GOODIX_MAX_CONTACTS (10). The on-stack buffer point_data[] is statically allocated for exactly 10 contacts (2 + GOODIX_MAX_CONTACT_SIZE * GOODIX_MAX_CONTACTS = 92 bytes). During interrupt handling, goodix_ts_read_input_report() accepts a touch_num up to 15 and the second goodix_i2c_read() call writes ts->contact_size * (touch_num - 1) bytes into point_data - up to 30 bytes (45 bytes with the 9-byte report format) past the end of the buffer, corrupting adjacent stack frames. The fix clamps max_touch_num to GOODIX_MAX_CONTACTS at configuration read time. Affected CPE: cpe:2.3:a:linux:linux covering kernel versions from 4.1 through the pre-fix stable series.

RemediationAI

Update the Linux kernel to the patched stable release for your active branch: 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.96, 6.18.39, 7.1.4, or 7.2-rc1. Specific fix commits are published at https://git.kernel.org/stable/c/ (commit hashes: e825f352ef52, 4bfea9c3a098, 98b2caef2491, 719d1a2c83a4, 46addbd13dbf, 3b32303460155, 2a67668690129, 5ed62a96e06b). If patching is not immediately possible, restrict physical access to devices with Goodix touchscreen controllers to prevent I2C bus tampering - this is the primary mitigating control, with the trade-off that it requires physical security posture rather than a software control. Alternatively, unloading the goodix kernel module ('modprobe -r goodix') eliminates the attack surface entirely but disables all touchscreen functionality on the device. Systems running end-of-life kernel branches (4.x, 5.4.x, etc.) should prioritize migration to a supported stable series to receive this and future security fixes.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected

Share

EUVD-2026-48986 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy