Skip to main content

Linux Kernel EUVDEUVD-2026-48908

| CVE-2026-64364 HIGH
Out-of-bounds Read (CWE-125)
2026-07-25 Linux GHSA-9vq4-gg6c-67hr
8.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
8.8 HIGH
AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
8.8 HIGH

Adjacent access to attach USB/BT device required (AV:A); no privileges needed; kernel panic confirmed (A:H); C:H/I:H reflect plausible struct-corruption impact beyond crash.

3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:A/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
Red Hat
7.0 HIGH
qualitative

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

6
Metadata Corrected
Sep 16, 2026 - 09:40 vuln.today
tag: Information Disclosure removed
Analysis Generated
Jul 27, 2026 - 05:39 vuln.today
CVSS changed
Jul 27, 2026 - 05:22 NVD
8.8 (HIGH)
Patch available
Jul 25, 2026 - 11:18 EUVD
CVE Published
Jul 25, 2026 - 08:50 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 25, 2026 - 08:50 cve.org
HIGH 8.8

DescriptionCVE.org

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

HID: multitouch: fix out-of-bounds bit access on mt_io_flags

mt_io_flags is a single unsigned long, but mt_process_slot(), mt_release_pending_palms() and mt_release_contacts() use it as a per-slot bitmap indexed by the slot number. That slot number is only bounded by td->maxcontacts, which is taken from the device's ContactCountMaximum feature report and can be up to 255, not by BITS_PER_LONG.

As a result, a multitouch device that advertises a large contact count makes set_bit()/clear_bit() operate past the mt_io_flags word and corrupt the adjacent members of struct mt_device. The sticky-fingers release timer is the easiest way to reach this. mt_release_contacts() runs

for (i = 0; i < mt->num_slots; i++) clear_bit(i, &td->mt_io_flags);

with num_slots == maxcontacts. For maxcontacts around 250 the loop clears the bits that overlap td->applications.next, zeroing that list head, and the list_for_each_entry() that immediately follows then dereferences NULL. The kernel panics from timer (softirq) context. On a KASAN build this shows up as a general protection fault in mt_release_contacts() with a null-ptr-deref at offset 0x58, which is offsetof(struct mt_application, num_received).

The state is reachable from an untrusted USB or Bluetooth HID multitouch device; no local privileges are required.

Store the per-slot active state in a separately allocated bitmap sized for maxcontacts, the same pattern already used for pending_palm_slots, and keep only MT_IO_FLAGS_RUNNING in mt_io_flags. The two "mt_io_flags & MT_IO_SLOTS_MASK" arming checks become bitmap_empty(td->active_slots, td->maxcontacts).

Move MT_IO_FLAGS_RUNNING back to bit 0. It was bumped to bit 32 by the same commit to leave the low byte for the slot bits; with the slot bits gone it fits in bit 0 again, which also keeps it within the unsigned long on 32-bit.

AnalysisAI

Out-of-bounds bit manipulation in the Linux kernel HID multitouch driver allows an attacker with a crafted USB or Bluetooth multitouch device to corrupt adjacent kernel data structures and panic the kernel. The driver uses mt_io_flags - a single unsigned long - as a variable-length per-slot bitmap indexed by slot number, which is bounded only by the device-reported ContactCountMaximum (up to 255). When that value exceeds BITS_PER_LONG, set_bit()/clear_bit() operations in mt_release_contacts() overwrite adjacent struct mt_device members, zeroing the td->applications list head and causing a null-pointer dereference in softirq context. No local privileges are required; physically connecting a crafted device is sufficient. No public exploit code has been identified at time of analysis.

Technical ContextAI

The vulnerability resides in drivers/hid/hid-multitouch.c in the Linux kernel HID multitouch driver. struct mt_device contains mt_io_flags as a single unsigned long, but mt_process_slot(), mt_release_pending_palms(), and mt_release_contacts() treat it as a per-slot bitmap using standard set_bit()/clear_bit() indexed by the slot number. The slot number is bounded only by td->maxcontacts, which the driver reads from the device's ContactCountMaximum HID feature report and can be up to 255. On 64-bit systems, any slot index ≥ 64 causes the bit operations to write beyond the mt_io_flags word into adjacent struct members. The mt_release_contacts() timer callback iterates all slots up to maxcontacts calling clear_bit(), which for maxcontacts near 250 overwrites the td->applications.next list head pointer with zero; the immediately following list_for_each_entry() then dereferences NULL. KASAN surfaces this as a general protection fault with null-ptr-deref at offset 0x58, which is offsetof(struct mt_application, num_received). The assigned CWE-125 (Out-of-bounds Read) is inconsistent with the primary mechanism, which is CWE-787 (Out-of-bounds Write) via bit operations; a secondary read component exists when the corrupted list head is traversed. The fix allocates a separately-sized active_slots bitmap (matching the existing pending_palm_slots pattern) and retires the slot-bit overloading of mt_io_flags.

RemediationAI

The primary fix is upgrading to a patched kernel version: 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.39, 7.1.4, or 7.2-rc3 or later for the respective stable series. Upstream patches are available at git.kernel.org stable tree commits referenced in the CVE. Ubuntu users should apply updates per USN-8726-1 (https://ubuntu.com/security/notices/USN-8726-1) and USN-8727-1 (https://ubuntu.com/security/notices/USN-8727-1). Where immediate patching is not possible, the compensating control is to unload or blacklist the hid-multitouch kernel module (modprobe -r hid-multitouch; echo 'blacklist hid-multitouch' >> /etc/modprobe.d/local.conf), which will disable multitouch HID functionality for all connected touchscreens and touchpads - acceptable for headless servers but disruptive on interactive workstations. USB authorization policy (echo 0 > /sys/bus/usb/devices/.../authorized) or rfkill block bluetooth can prevent new device attachment without removing the module, at the cost of blocking all HID device additions.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
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
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

EUVD-2026-48908 vulnerability details – vuln.today

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