Skip to main content

Linux Kernel CVE-2026-64270

| EUVDEUVD-2026-48982 HIGH
Out-of-bounds Write (CWE-787)
2026-07-25 Linux GHSA-q4qw-j7hr-9445
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

Exploitation requires physical I2C bus access or a malicious hardware device, making AV:P and PR:N more accurate than the NVD's AV:L/PR:L assignment.

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
6.8 MEDIUM
AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/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 - 20:51 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: mms114 - reject an oversized device packet size

mms114_interrupt() reads a packet of touch data from the device into a fixed-size on-stack buffer

struct mms114_touch touch[MMS114_MAX_TOUCH];

which holds MMS114_MAX_TOUCH (10) events of MMS114_EVENT_SIZE (8) bytes, i.e. 80 bytes. The length of the I2C read into it is taken verbatim from the device:

packet_size = mms114_read_reg(data, MMS114_PACKET_SIZE); if (packet_size <= 0) goto out; ... error = __mms114_read_reg(data, MMS114_INFORMATION, packet_size, (u8 *)touch);

packet_size is a single device register byte (0x0F) and the only check is the lower bound packet_size <= 0; it is never bounded against the size of touch[]. A malfunctioning, malicious or counterfeit controller (or an attacker tampering with the I2C bus) can report a packet_size of up to 255, so __mms114_read_reg() writes up to 175 bytes past the end of touch[] on the IRQ-thread stack: a stack out-of-bounds write that can overwrite the stack canary, saved registers and the return address.

A well-formed device never reports more than the buffer holds, so reject an oversized packet and drop the report, consistent with the handler's other error paths, rather than reading past the buffer.

AnalysisAI

Stack out-of-bounds write in the Linux kernel's mms114 touchscreen driver allows a physically-positioned attacker with access to the I2C bus - or the ability to substitute a malicious or counterfeit controller - to overwrite the IRQ-thread stack, corrupting the stack canary, saved registers, and return address for potential kernel-level code execution. Affected systems include Linux kernel builds from version 3.6 onward that load the mms114 driver on hardware incorporating the Melfas MMS114 touchscreen controller. No public exploit code has been identified at time of analysis, and EPSS places exploitation probability at just 0.21%, consistent with the narrow hardware-specific attack surface.

Technical ContextAI

The mms114 driver (drivers/input/touchscreen/mms114.c) manages I2C communication with Melfas MMS114-series capacitive touchscreen controllers. In mms114_interrupt(), a fixed 80-byte on-stack buffer - declared as struct mms114_touch touch[MMS114_MAX_TOUCH], holding 10 events of 8 bytes each - receives incoming touch packet data. The driver reads the packet length directly from the device's MMS114_PACKET_SIZE register (0x0F), a single byte encoding values 0-255, and performs only a lower-bound check (packet_size <= 0) before passing the value verbatim to __mms114_read_reg(). Without any upper-bound check against the 80-byte buffer, a device advertising a packet_size of 255 causes the I2C read to write up to 175 bytes beyond the buffer's end - a textbook CWE-787 out-of-bounds write on the kernel's IRQ-thread stack. The I2C bus is a low-speed serial bus used for internal peripheral communication on embedded and mobile platforms, and the broad CPE identifier cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* reflects that the vulnerable code is compiled into the mainline kernel wherever the mms114 driver is included.

RemediationAI

Upgrade to a patched Linux kernel stable release: 6.6.145, 6.12.96, 6.18.39, or 7.1.4. Upstream fix commits are available at https://git.kernel.org/stable/c/66725039f7090afe14c31bd259e2059a68f04023 (6.6 branch), https://git.kernel.org/stable/c/5d2ea15ba03bf17ed143ff1a0995a4206edc3fb6 (6.12 branch), https://git.kernel.org/stable/c/b78150729762d47c14fe29a2582bdca5568e62b8 (6.18 branch), https://git.kernel.org/stable/c/f3d5e77b27fded71dcb97f409262bf0abba0410e (7.1 branch), and https://git.kernel.org/stable/c/8301c335305344d4da4ab9442b6a399dacfe5b8d for the additional branch. Where kernel update is not immediately possible, blacklist or unload the mms114 driver on systems that do not use MMS114 touchscreens by running modprobe -r mms114 and adding 'blacklist mms114' to /etc/modprobe.d/blacklist.conf; the trade-off is that the touchscreen becomes non-functional on hardware that legitimately uses the MMS114 controller.

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

CVE-2026-64270 vulnerability details – vuln.today

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