CVE-2026-64270: Input: mms114 - reject an oversized device packet size
In the Linux kernel, the following vulnerability has been resolved:
Input: mms114 - reject an oversized device packet size
mms114interrupt() reads a packet of touch data from the device into a fixed-size on-stack buffer
struct mms114touch touch[MMS114MAXTOUCH];
which holds MMS114MAXTOUCH (10) events of MMS114EVENTSIZE (8) bytes, i.e. 80 bytes. The length of the I2C read into it is taken verbatim from the device:
packetsize = mms114readreg(data, MMS114PACKETSIZE); if (packetsize <= 0) goto out; ... error = mms114readreg(data, MMS114INFORMATION, packetsize, (u8 )touch);
packetsize is a single device register byte (0x0F) and the only check is the lower bound packetsize <= 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 packetsize of up to 255, so mms114readreg() 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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernel input driver: mms114to a version that resolves this vulnerability.Patch Input: mms114 - reject an oversized device packet size - Configuration
Apply the handler change so that mms114 rejects an oversized device packet_size instead of using it verbatim to read into the fixed-size on-stack buffer (i.e., ensure packet_size is bounded against the touch[] buffer capacity; if oversized, drop the report rather than reading past the buffer).
mms114 device packet_size bounds check = drop report when packet_size exceeds fixed-size on-stack buffer; keep lower bound check packet_size > 0
Event History
Frequently Asked Questions
What is the severity of CVE-2026-64270?
CVE-2026-64270 has a severity rating of high with a CVSS score of 7.8.
How do I fix CVE-2026-64270?
To fix CVE-2026-64270, apply the available patch from the Linux kernel.
What part of the Linux kernel is affected by CVE-2026-64270?
CVE-2026-64270 affects the mms114_interrupt() function in the Linux kernel.
What type of vulnerability is CVE-2026-64270?
CVE-2026-64270 is an input validation vulnerability that can reject oversized device packet sizes.
What are the potential impacts of CVE-2026-64270?
CVE-2026-64270 could lead to denial of service or arbitrary code execution due to buffer overflow.