Skip to main content

Linux Kernel CVE-2026-64273

| EUVDEUVD-2026-48985 HIGH
Improper Validation of Array Index (CWE-129)
2026-07-25 Linux GHSA-mwj6-9jph-6qp6
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

Physical device connection is the mandatory attack vector (AV:P); no OS credentials needed since the malicious device itself drives exploitation (PR:N); kernel heap corruption yields full C/I/A impact.

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 - 18:39 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: iforce - bound the device-reported force-feedback effect index

iforce_process_packet() handles a status report (packet id 0x02) by taking a force-feedback effect index straight from the device wire and using it to address the per-effect state array:

i = data[1] & 0x7f; if (data[1] & 0x80) { if (!test_and_set_bit(FF_CORE_IS_PLAYED, iforce->core_effects[i].flags)) ... } else if (test_and_clear_bit(FF_CORE_IS_PLAYED, iforce->core_effects[i].flags)) { ... }

The index is masked only with 0x7f, so it ranges 0..127, but core_effects[] holds only IFORCE_EFFECTS_MAX (32) entries. For an index of 32..127 the test_and_set_bit()/test_and_clear_bit() is an out-of-bounds single-bit read-modify-write past the array. core_effects[] is the second-to-last member of struct iforce, so the write lands in the trailing members and beyond the embedding kzalloc()'d iforce_serio / iforce_usb object.

data[1] is unvalidated device payload on both transports (the USB interrupt endpoint and serio), and the status path is not gated on force feedback being present, so a malicious or counterfeit device can set or clear a bit at an attacker-chosen offset past the object.

Reject an out-of-range index instead of indexing with it. Bound against the array dimension IFORCE_EFFECTS_MAX rather than dev->ff->max_effects so the check guarantees memory safety regardless of how many effects the device registered. A legitimate "effect started/stopped" status always carries an index below IFORCE_EFFECTS_MAX, so well-formed devices are unaffected; the neighbouring mark_core_as_ready() loop is already bounded and is left untouched.

AnalysisAI

Out-of-bounds heap write in the Linux kernel iforce force-feedback input driver allows a physically connected malicious device to corrupt kernel memory. The iforce driver's status packet handler blindly uses a device-supplied effect index masked only to 0-127 as an array subscript into a 32-entry array, enabling test_and_set_bit/test_and_clear_bit operations up to 95 entries past the array boundary and into trailing kzalloc'd structure members. No confirmed active exploitation exists (not in CISA KEV), and EPSS probability is very low at 0.22% (13th percentile), but successful exploitation against an unpatched kernel yields high confidentiality, integrity, and availability impact at the kernel heap level.

Technical ContextAI

The vulnerability lives in iforce_process_packet() within the Linux kernel's iforce driver (drivers/input/joystick/iforce/), which handles the proprietary iForce force-feedback protocol from Immersion Corp used by certain Logitech and other gaming peripherals. The function processes type-0x02 status reports over two transport paths: USB interrupt endpoints and serio (serial). The effect index is read from data[1] & 0x7f, giving a 7-bit range of 0-127, then used directly to index iforce->core_effects[]. However, IFORCE_EFFECTS_MAX is only 32, so indices 32-127 cause test_and_set_bit() and test_and_clear_bit() to write a single bit at an attacker-controlled offset past the end of the array, landing in the trailing members of struct iforce and potentially beyond the enclosing kzalloc'd iforce_serio or iforce_usb allocation. The vulnerable status path is not gated on force-feedback capability being registered, widening the attack surface to any device that asserts packet type 0x02. The root cause is CWE-129 (Improper Validation of Array Index): device-controlled data used as an array index without validation against the actual array dimension.

RemediationAI

The primary fix is to upgrade to a patched stable kernel: 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 depending on the branch in use; patch commits are indexed at https://git.kernel.org/stable/c/b1b79e89bc33e4c682d3df7ae2aadc62b5a0c310 (5.10.x), https://git.kernel.org/stable/c/70019779325f2bb5f5a4098e91e79c655f50fcef (5.15.x), https://git.kernel.org/stable/c/c21295616a8a52b9a5f18cd4ca8c73030eda3d4f (6.1.x), and https://git.kernel.org/stable/c/a40250f97c312e000e3616c9074022311a0efbc3 (6.12.x). For systems where immediate kernel upgrade is not possible, blacklist the iforce module by adding 'blacklist iforce' to /etc/modprobe.d/iforce-blacklist.conf and running depmod - this prevents the driver from loading when a device is connected, at the cost of disabling all iForce force-feedback functionality. Enforce USB device authorization using USBGuard or kernel USB authorization sysfs interface to block unrecognized devices before their drivers bind. For legacy serial (serio) exposure, disable unused serial ports in BIOS/UEFI firmware settings. Physical port locking (USB port blockers, locked server rooms) provides a hardware-layer compensating control for high-security environments.

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-64273 vulnerability details – vuln.today

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