Description
In the Linux kernel, the following vulnerability has been resolved:

iio: imu: adis16400: fix unprotected debugfs reads

adis16400_serial_number_fops is open coded and never calls
debugfs_file_get(), so debugfs_remove_recursive() does not wait for a
read in progress and unbind frees the iio_dev underneath it.

Commit ae1d37a9bb4b ("iio: imu: adis16400: use DEFINE_DEBUGFS_ATTRIBUTE
instead of DEFINE_SIMPLE_ATTRIBUTE") converted product_id and
flash_count to DEFINE_DEBUGFS_ATTRIBUTE, which protects itself, but
moved all three files to debugfs_create_file_unsafe().

serial_number prints three registers as "%.4x-%.4x-%.4x" and
DEFINE_DEBUGFS_ATTRIBUTE() formats a single u64, so it cannot be
converted without changing what the file returns. adis16475 and
adis16550 already use debugfs_create_file() for their open coded
files. Use it here too.
Published: 2026-10-18
Score: 4.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Information Disclosure
Action: Immediate Patch
AI Analysis

Impact

The Linux kernel’s iio: imu: adis16400 driver contained an unprotected read path on the debugfs serial number file. The file handler was implemented as open‑coded C code that never invoked debugfs_file_get(), meaning that when debugfs_remove_recursive() released the IIO device the file could still be read. An attacker could trigger a read while the driver is being unbound and thus observe data from memory that belongs to a freed iio_dev. This race condition exposes the contents of three device registers formatted as a serial number, providing sensitive hardware state information and potentially enabling a use‑after‑free exploitation scenario. The core weakness is an unprotected debugfs read that can occur during a device unbind operation.

Affected Systems

Any system running a Linux kernel that includes the adis16400 IIO device driver and has debugfs enabled is affected. The flaw exists in the kernel source before the commit that introduces DEFINE_DEBUGFS_ATTRIBUTE and the safe debugfs_create_file() call; most mainstream distributions that ship older kernels until the fix commit expose the vulnerability.

Risk and Exploitability

The CVSS score is 4.1, and the EPSS score of < 1 % indicates a very low probability of exploitation. The vulnerability is not included in the CISA KEV catalog. Based on the description it is inferred that the attack vector is local, requiring read access to the debugfs filesystem. A privileged or local user with access to /sys/kernel/debug/iio/devices/ can trigger the race between a device read and an unbind, potentially leaking sensitive register values or exhausting the device object. While the evident impact is information disclosure, the race condition could also lead to a use‑after‑free, raising the severity for systems that allow unprivileged debugfs access.

Generated by OpenCVE AI on October 23, 2026 at 06:12 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel patch that includes commit ae1d37a9bb4b, which replaces the open‑coded serial number file handler with DEFINE_DEBUGFS_ATTRIBUTE and debugfs_create_file() to protect against concurrent reads and use‑after‑free.
  • Restart the system or reload the iio driver so that the new file handling is active and the risk is mitigated.
  • If the patch cannot be applied immediately, restrict access to the debugfs directory for iio devices or unmount the debugfs interface to eliminate read access to the vulnerable files.

Generated by OpenCVE AI on October 23, 2026 at 06:12 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
History

Fri, 30 Oct 2026 12:45:00 +0000


Fri, 23 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-200
CWE-416

Thu, 22 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.1, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Wed, 21 Oct 2026 13:15:00 +0000


Sun, 18 Oct 2026 23:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-200
CWE-416

Sun, 18 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: iio: imu: adis16400: fix unprotected debugfs reads adis16400_serial_number_fops is open coded and never calls debugfs_file_get(), so debugfs_remove_recursive() does not wait for a read in progress and unbind frees the iio_dev underneath it. Commit ae1d37a9bb4b ("iio: imu: adis16400: use DEFINE_DEBUGFS_ATTRIBUTE instead of DEFINE_SIMPLE_ATTRIBUTE") converted product_id and flash_count to DEFINE_DEBUGFS_ATTRIBUTE, which protects itself, but moved all three files to debugfs_create_file_unsafe(). serial_number prints three registers as "%.4x-%.4x-%.4x" and DEFINE_DEBUGFS_ATTRIBUTE() formats a single u64, so it cannot be converted without changing what the file returns. adis16475 and adis16550 already use debugfs_create_file() for their open coded files. Use it here too.
Title iio: imu: adis16400: fix unprotected debugfs reads
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-30T12:38:33.465Z

Reserved: 2026-09-25T10:25:14.363Z

Link: CVE-2026-98664

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:19.697

Modified: 2026-10-30T13:21:16.930

Link: CVE-2026-98664

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98664 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T06:15:13Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference