PHP2Shell: Read our blog on the critical RCE vulnerabilities affecting 70% of the Internet

CVE-2026-98859: 
Linux Kernel vulnerability analysis and mitigation

Overview

CVE-2026-98859 is a use-after-free vulnerability in the Linux kernel's HID multitouch driver (drivers/hid/hid-multitouch.c), specifically in the release timer handling during device removal. When mt_remove() calls timer_delete_sync() to quiesce the sticky-finger timer, incoming HID reports can re-arm the timer after the sync completes but before hid_hw_stop() finishes; when the timer subsequently fires, mt_expired_timeout() dereferences the already-freed mt_device structure (td). The vulnerability affects Linux kernel versions from 4.13 up to (but not including) the patched stable commits across multiple stable branches. It carries a CVSS category estimate of Medium (GitHub Advisory, Feedly).

Technical details

The root cause is a use-after-free (CWE-416) race condition in the HID multitouch driver's device teardown path. timer_delete_sync() dequeues the release_timer and waits for any running callback, but does not prevent subsequent mod_timer() calls; if a HID report with the MT_QUIRK_STICKY_FINGERS quirk and active slots arrives after timer_delete_sync() returns, the report handler re-arms the timer via mod_timer(&td->release_timer, jiffies + msecs_to_jiffies(100)). Because td is allocated with devm_kzalloc() against hdev->dev, it is freed when the driver unbinds after mt_remove() returns. The fix replaces timer_delete_sync() with timer_shutdown_sync(), which additionally makes any subsequent mod_timer() a no-op, eliminating the race without requiring reordering of teardown steps (GitHub Advisory).

Impact

Successful exploitation can result in kernel memory corruption or arbitrary code execution with kernel privileges on the affected system. A local attacker who can trigger HID multitouch device reports — either by physically interacting with a touchscreen or by sending crafted HID packets — during device removal can cause the freed td structure to be dereferenced, potentially allowing privilege escalation to ring-0. The impact is confined to the local system; however, kernel-level code execution could enable full system compromise, disabling security controls, or facilitating further lateral movement (Feedly, GitHub Advisory).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation as of the disclosure date (Feedly). Exploitation requires local access and the ability to time HID report delivery to coincide with device removal, making it a race condition that is non-trivial to reliably trigger. No threat actor attribution has been reported, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. EPSS score data is not yet available for this CVE.

Exploitation steps

  1. Gain local access: Obtain a local user session on a Linux system running a vulnerable kernel (4.13 through the unpatched stable versions) with a HID multitouch device (e.g., touchscreen) that uses the MT_QUIRK_STICKY_FINGERS quirk.
  2. Prepare HID report delivery: Set up a mechanism to continuously send or trigger HID multitouch reports with active touch slots to the target device, either via physical interaction with the touchscreen or by crafting HID packets using a tool such as a USB gadget or /dev/hidraw.
  3. Trigger device removal: Initiate unbinding of the HID multitouch driver (e.g., via echo <device> > /sys/bus/hid/drivers/hid-multitouch/unbind or by physically disconnecting the device) to invoke mt_remove().
  4. Race the timer: Ensure a HID report arrives after timer_delete_sync() completes but before hid_hw_stop() finishes, causing mod_timer() to re-arm release_timer with the soon-to-be-freed td pointer.
  5. Trigger use-after-free: Allow the timer to fire after td has been freed by devm cleanup; mt_expired_timeout() dereferences the freed memory, potentially enabling controlled kernel memory corruption or code execution with kernel privileges (GitHub Advisory, Feedly).

Indicators of compromise

  • Logs: Kernel oops or BUG messages in dmesg or /var/log/kern.log referencing mt_expired_timeout, hid-multitouch, or use-after-free/invalid memory access during HID device removal.
  • Logs: Kernel KASAN (Kernel Address Sanitizer) reports indicating use-after-free in mt_expired_timeout() or mt_release_contacts() if KASAN is enabled on the system.
  • Process: Unexpected kernel panics or system instability coinciding with HID multitouch device unbind/removal events.
  • File System: Crash dump files (e.g., /var/crash/, kdump artifacts) generated around the time of HID device removal that reference the multitouch driver stack.

Mitigation and workarounds

Apply the upstream kernel fix that replaces timer_delete_sync() with timer_shutdown_sync() in mt_remove(), which prevents the timer from being re-armed after teardown begins. Patched commits are available for multiple stable branches: 1f1bd9a3117f and 0c19a6c1d25f (two branches), a0125ca86e40, and 5acb2dace582f; unaffected stable versions include 6.12.113+, 6.18.56+, 7.2.10+, and 7.3-rc6+ (GitHub Advisory). As an interim workaround on systems where patching is not immediately possible, physically disconnect or disable the affected HID multitouch device if it is not required for operation (Feedly).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

linux

Affected

sid

linux: 7.2.10-1

Fixed

trixie

linux: 6.12.113-1

Fixed

Ubuntu

Affected

bionic (esm-infra)

linux

Affected

bionic (fips-updates)

linux-fips

Affected

bionic (fips)

linux-fips

Affected

devel

linux

Unknown

focal

linux-azure-fde-5.15

Not Affected

focal (esm-infra)

linux

Affected

focal (fips-updates)

linux-fips

Affected

focal (fips)

linux-fips

Affected

RHEL / CentOS

Affected

RHEL 10

kernel.src

Affected

Source: This report was generated using AI

Related Linux Kernel vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-98857HIGH7.5
  • Linux Kernel logoLinux Kernel
  • linux-riscv
NoYesOct 18, 2026
CVE-2026-98856MEDIUM6.4
  • Linux Kernel logoLinux Kernel
  • kernel-rt-debug
NoYesOct 18, 2026
CVE-2026-98863NONEN/A
  • Linux Kernel logoLinux Kernel
  • linux-lowlatency-hwe-6.8
NoYesOct 18, 2026
CVE-2026-98862NONEN/A
  • Linux Kernel logoLinux Kernel
  • linux-gcp-6.8
NoYesOct 18, 2026
CVE-2026-98859NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-debug-devel
NoYesOct 18, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management