Skip to main content
Vulnerability Database/CVE-2026-98679

CVE-2026-98679: Linux Kernel Privilege Escalation Vulnerability

CVE-2026-98679 is a privilege escalation vulnerability in the Linux kernel IIO subsystem affecting the kxcjk-1013 accelerometer driver. This post covers the technical details, affected versions, impact, and mitigation steps.

Published:

CVE-2026-98679 Overview

CVE-2026-98679 affects the Linux kernel's Industrial I/O (IIO) subsystem, specifically the kxcjk-1013 accelerometer driver. The vulnerability stems from unfiltered duplicate writes to the event enable attribute. When userspace issues a repeated disable request, the driver calls kxcjk1013_set_power_state(data, false) and drops a runtime Power Management (PM) reference that was never acquired for that request. The resulting runtime PM usage count underflow triggers a kernel warning and can destabilize power management state tracking for the device.

Critical Impact

Repeated event disable writes underflow the runtime PM usage count, generating kernel warnings and potentially leaving the accelerometer in an inconsistent power state.

Affected Products

  • Linux kernel builds including the drivers/iio/accel/kxcjk-1013.c driver prior to the fix
  • Systems using Kionix KXCJK-1013 and related accelerometers exposed through the IIO subsystem
  • Downstream distributions that have not yet backported the stable tree patches

Discovery Timeline

  • 2026-10-18 - CVE-2026-98679 published to the National Vulnerability Database (NVD)
  • 2026-10-21 - Last updated in NVD database

Technical Details for CVE-2026-98679

Vulnerability Analysis

The kxcjk-1013 driver exposes event enable attributes through the IIO sysfs interface. The IIO core does not deduplicate writes to these attributes, so userspace can issue the same disable request multiple times. The function kxcjk1013_write_event_config() correctly short-circuits repeated enable requests but does not apply the same guard to disable requests.

On each repeated disable call, the driver invokes kxcjk1013_set_power_state(data, false), which releases a runtime PM reference. Because no matching reference was taken for the duplicate call, the kernel's runtime PM usage counter decrements below its expected value. The kernel detects this and emits a "Runtime PM usage count underflow" warning through WARN().

The fix adds an early return when the requested state already matches ev_enable_state, mirroring the existing deduplication logic for enable requests.

Root Cause

The root cause is missing idempotency on the disable path of kxcjk1013_write_event_config(). The function compares the requested state only when enabling events, allowing duplicate disable writes to reach the power state transition logic. This is a kernel driver logic flaw affecting state consistency rather than a memory safety issue.

Attack Vector

Triggering the condition requires local write access to the IIO sysfs event enable attribute for the device. An unprivileged process with permissions on /sys/bus/iio/devices/iio:deviceX/events/ can issue repeated disable writes to cause runtime PM counter underflow. The impact is limited to local denial of stability on the affected device and kernel log noise. No remote attack vector is applicable.

See the stable tree commits for the specific code paths and fix diffs: Kernel Patch 137c35c, Kernel Patch 3365209, Kernel Patch aa94a37, Kernel Patch ad690c0, and Kernel Patch dd30c10.

Detection Methods for CVE-2026-98679

Indicators of Compromise

  • Kernel log entries containing the string Runtime PM usage count underflow associated with the kxcjk-1013 device
  • WARN() backtraces in dmesg referencing pm_runtime_put or runtime PM accounting functions originating from the IIO accel driver
  • Repeated writes of 0 to in_accel_*_thresh_either_en sysfs attributes from unexpected processes

Detection Strategies

  • Parse /var/log/kern.log and journalctl -k output for runtime PM underflow warnings tied to IIO devices
  • Enable kernel auditing on /sys/bus/iio/devices/ to track processes writing to event enable attributes
  • Correlate kernel warning events with the running kernel version to identify unpatched hosts

Monitoring Recommendations

  • Forward kernel ring buffer events into a centralized log pipeline for host-level anomaly review
  • Alert on recurring WARN_ON conditions in the IIO or runtime PM subsystems across the fleet
  • Track kernel package versions through configuration management to confirm the stable patches are deployed

How to Mitigate CVE-2026-98679

Immediate Actions Required

  • Apply the stable kernel patches referenced above to any host running the kxcjk-1013 driver
  • Audit filesystem permissions on /sys/bus/iio/devices/ and restrict write access to privileged processes only
  • Inventory devices that load the kxcjk-1013 module using lsmod or modinfo to scope exposure

Patch Information

The fix is distributed across multiple stable kernel trees. Reference the upstream commits 137c35c, 3365209, aa94a37, ad690c0, and dd30c10. Install the vendor-provided kernel update that includes the corresponding backport for your distribution.

Workarounds

  • Unload the kxcjk-1013 module on systems that do not require the accelerometer using modprobe -r kxcjk-1013
  • Blacklist the driver through /etc/modprobe.d/ on servers or appliances where the sensor is not needed
  • Restrict sysfs write permissions on affected IIO event enable attributes to prevent unprivileged userspace from issuing repeated disable writes

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.