Linux Kernel up to 7.2-rc2 HID: multitouch maxcontacts/num_slots/mt_io_flags out-of-bounds

CVSS Meta Temp Score
CVSS is a standardized scoring system to determine possibilities of attacks. The Temp Score considers temporal factors like disclosure, exploit and countermeasures. The unique Meta Score calculates the average score of different sources to provide a normalized scoring system.
Current Exploit Price (≈)
Our analysts are monitoring exploit markets and are in contact with vulnerability brokers. The range indicates the observed or calculated exploit price to be seen on exploit markets. A good indicator to understand the monetary effort required for and the popularity of an attack.
CTI Interest Score
Our Cyber Threat Intelligence team is monitoring different web sites, mailing lists, exploit markets and social media networks. The CTI Interest Score identifies the interest of attackers and the security community for this specific vulnerability in real-time. A high score indicates an elevated risk to be targeted for this vulnerability.
6.2$0-$5k3.18-

Summaryinfo

A vulnerability was found in Linux Kernel up to 7.2-rc2. It has been rated as critical. The impacted element is the function mt_release_contacts/mt_process_slot/mt_release_pending_palms of the component HID: multitouch. The manipulation of the argument maxcontacts/num_slots/mt_io_flags leads to out-of-bounds. This vulnerability is traded as CVE-2026-64364. It is possible to initiate the attack remotely. There is no exploit available.

Detailsinfo

A vulnerability, which was classified as critical, has been found in Linux Kernel up to 7.2-rc2. This issue affects the function mt_release_contacts/mt_process_slot/mt_release_pending_palms of the component HID: multitouch. The manipulation of the argument maxcontacts/num_slots/mt_io_flags with an unknown input leads to a out-of-bounds vulnerability. Using CWE to declare the problem leads to CWE-125. The product reads data past the end, or before the beginning, of the intended buffer. Impacted is integrity, and availability. The summary by CVE is:

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.

It is possible to read the advisory at git.kernel.org. The identification of this vulnerability is CVE-2026-64364 since 07/19/2026. The exploitation is known to be easy. The attack may be initiated remotely. No form of authentication is needed for a successful exploitation. Technical details of the vulnerability are known, but there is no available exploit. The pricing for an exploit might be around USD $0-$5k at the moment (estimation calculated on 07/25/2026).

Upgrading to 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 eliminates this vulnerability. Applying the patch 12e90656e330ff8bbaf2f29c535fdb8a11cc6f55/152983d87387f6a8ae72b73474cfa55fbcf1ec75/b5c037d6b807017e74a115288f81bc9cd5a5aab8/a6d5ce2e1a2d7bf189bde8a659d04b65f0b0725d/e24918ee67c4dc3d20d4670750e46e9b160365f4/37daa8c96bd563d03150e23f094cb60703594a6d/6493ebf9489efef0105078377b973ab33d51af22/8813b0612275cc61fe9e6603d0ee019247ade6be is able to eliminate this problem.

Be aware that VulDB is the high quality source for vulnerability data.

Productinfo

Type

Vendor

Name

Version

License

Website

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔒
VulDB Reliability: 🔍

CVSSv3info

VulDB Meta Base Score: 6.5
VulDB Meta Temp Score: 6.2

VulDB Base Score: 6.5
VulDB Temp Score: 6.2
VulDB Vector: 🔒
VulDB Reliability: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplexityAuthenticationConfidentialityIntegrityAvailability
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock

VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍

Exploitinginfo

Class: Out-of-bounds
CWE: CWE-125 / CWE-119
CAPEC: 🔒
ATT&CK: 🔒

Physical: No
Local: No
Remote: Yes

Availability: 🔒
Status: Not defined

EPSS Score: 🔒
EPSS Percentile: 🔒

Price Prediction: 🔍
Current Price Estimation: 🔒

0-DayUnlockUnlockUnlockUnlock
TodayUnlockUnlockUnlockUnlock

Threat Intelligenceinfo

Interest: 🔍
Active Actors: 🔍
Active APT Groups: 🔍

Countermeasuresinfo

Recommended: Upgrade
Status: 🔍

0-Day Time: 🔒

Upgrade: Kernel 5.10.261/5.15.212/6.1.178/6.6.145/6.12.97/6.18.39/7.1.4/7.2-rc3
Patch: 12e90656e330ff8bbaf2f29c535fdb8a11cc6f55/152983d87387f6a8ae72b73474cfa55fbcf1ec75/b5c037d6b807017e74a115288f81bc9cd5a5aab8/a6d5ce2e1a2d7bf189bde8a659d04b65f0b0725d/e24918ee67c4dc3d20d4670750e46e9b160365f4/37daa8c96bd563d03150e23f094cb60703594a6d/6493ebf9489efef0105078377b973ab33d51af22/8813b0612275cc61fe9e6603d0ee019247ade6be

Timelineinfo

07/19/2026 CVE reserved
07/25/2026 +6 days Advisory disclosed
07/25/2026 +0 days VulDB entry created
07/25/2026 +0 days VulDB entry last update

Sourcesinfo

Vendor: kernel.org

Advisory: git.kernel.org
Status: Confirmed

CVE: CVE-2026-64364 (🔒)
GCVE (CVE): GCVE-0-2026-64364
GCVE (VulDB): GCVE-100-383159

Entryinfo

Created: 07/25/2026 17:11
Changes: 07/25/2026 17:11 (60)
Complete: 🔍
Cache ID: 216::103

Be aware that VulDB is the high quality source for vulnerability data.

Discussion

No comments yet. Languages: en.

Please log in to comment.

Want to stay up to date on a daily basis?

Enable the mail alert feature now!