CVE-2026-98835 Overview
CVE-2026-98835 is a boundary check flaw in the Linux kernel's kionix-kx022a driver, part of the Industrial I/O (IIO) accelerometer subsystem. The driver converts a hardware register value into an array index and performs a sanity check against the array size. The check accepts sizeof(array) as a valid last index when the last valid index should be sizeof(array) - 1. This off-by-one condition can allow an out-of-bounds array access inside the kernel when processing values originating from the device register.
Critical Impact
An off-by-one array bounds check in a kernel accelerometer driver can lead to out-of-bounds memory access, risking kernel memory corruption or information disclosure on systems that load the affected driver.
Affected Products
- Linux kernel versions containing the drivers/iio/accel/kionix-kx022a driver prior to the fix commits
- Systems using Kionix KX022A accelerometer hardware with the mainline Linux IIO driver
- Downstream distributions and embedded builds that incorporate the vulnerable driver
Discovery Timeline
- 2026-10-18 - CVE-2026-98835 published to NVD
- 2026-10-21 - Last updated in NVD database
Technical Details for CVE-2026-98835
Vulnerability Analysis
The kionix-kx022a driver reads a register value from the accelerometer and translates it into an index used to look up an entry in a fixed-size array. Before indexing, the driver validates the computed index against the array size. The validation uses an inclusive upper bound equal to sizeof(array) rather than sizeof(array) - 1. When the register returns the maximum possible value, the check passes and the driver dereferences memory one element past the end of the array.
This is an off-by-one input validation error [CWE-193] that leads to an out-of-bounds read in kernel space. Because the driver interacts with physical sensor data, the attack surface depends on how the device presents register values and whether an unprivileged user can influence that data path through the IIO sysfs interface.
Root Cause
The root cause is an incorrect comparison operator in the sanity check. The driver treats sizeof(array) as a valid last index instead of enforcing index < sizeof(array). The fix bails out when index >= sizeof(array), ensuring any value equal to or above the array length is rejected before use.
Attack Vector
Exploitation requires that the vulnerable driver be loaded and that an attacker influence or trigger register-to-index conversion in the driver. On most systems this requires local access or physical interaction with the sensor subsystem. The practical impact ranges from a kernel memory read of adjacent data to driver instability, depending on the memory layout surrounding the array. The vulnerability does not provide a direct remote code execution path.
The fix is distributed across multiple stable branches via the kernel commits referenced below. See the Linux Kernel Commit 22d37717 and Linux Kernel Commit 87746be1 for the corrected boundary check.
Detection Methods for CVE-2026-98835
Indicators of Compromise
- Unexpected kernel log messages (dmesg) referencing kionix-kx022a, IIO subsystem faults, or KASAN out-of-bounds reports
- Kernel oops or panic entries correlated with accelerometer polling or sysfs reads under /sys/bus/iio/devices/
- Driver module loaded on systems where the kernel version matches a vulnerable range listed in the referenced stable commits
Detection Strategies
- Enumerate loaded kernel modules with lsmod | grep kionix_kx022a and compare the running kernel version against patched stable releases
- Use distribution package managers (rpm -q kernel, dpkg -l linux-image-*) to confirm installed kernel builds include the fix
- Enable KASAN in test and pre-production kernels to surface the out-of-bounds read if the vulnerable code path is reached
Monitoring Recommendations
- Forward kernel ring buffer and journald logs to a centralized logging platform to catch driver faults across the fleet
- Alert on repeated IIO subsystem errors or kernel warnings tied to accelerometer devices
- Track kernel package versions in configuration management to confirm patch coverage after rollout
How to Mitigate CVE-2026-98835
Immediate Actions Required
- Identify systems that load the kionix-kx022a driver and prioritize patching those first, especially embedded, laptop, and IoT devices with Kionix KX022A sensors
- Apply the latest stable Linux kernel update from your distribution that includes the referenced fix commits
- Reboot patched systems to ensure the fixed driver is active in memory
Patch Information
The fix was merged into mainline and backported across multiple stable branches. Reference commits: 0e65412a, 22d37717, 4c73c185, 714d8f0b, and 87746be1. The change replaces the inclusive check with index >= sizeof(array) to reject the invalid last index.
Workarounds
- Where the accelerometer is not required, blacklist the module by adding blacklist kionix_kx022a to a file under /etc/modprobe.d/ and rebuilding the initramfs
- Restrict access to IIO sysfs entries under /sys/bus/iio/devices/ to privileged users via udev rules on multi-user systems
- Where patching is delayed, limit untrusted local user access to systems that expose the vulnerable driver
# Verify running kernel and whether the kionix-kx022a module is loaded
uname -r
lsmod | grep kionix_kx022a
# Temporary workaround: prevent the vulnerable module from loading
echo 'blacklist kionix_kx022a' | sudo tee /etc/modprobe.d/cve-2026-98835.conf
sudo update-initramfs -u # Debian/Ubuntu
# or
sudo dracut -f # RHEL/Fedora/SUSE
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

