---
id: CVE-2026-98664
title: 'iio: imu: adis16400: fix unprotected debugfs reads'
summary: |-
  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 no…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 <
    e9b4c00f775a915b759b08bfe2c5e806a8301a59
  - >-
    Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 <
    50e8d70ba0743f88afd7e49f9cebd1841ee677f5
  - >-
    Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 <
    f501302ebb9e1504162351b951fe3ae331c852ab
  - >-
    Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 <
    d94787287a113a1326211647d5e0deed1e9de105
  - Linux 5.8
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:44:32.940Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98664'
references:
  - url: 'https://git.kernel.org/stable/c/e9b4c00f775a915b759b08bfe2c5e806a8301a59'
  - url: 'https://git.kernel.org/stable/c/50e8d70ba0743f88afd7e49f9cebd1841ee677f5'
  - url: 'https://git.kernel.org/stable/c/f501302ebb9e1504162351b951fe3ae331c852ab'
  - url: 'https://git.kernel.org/stable/c/d94787287a113a1326211647d5e0deed1e9de105'
tags:
  - cve.org
ingestedAt: '2026-10-18T16:47:32.534Z'
---

## Overview

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.

## Affected

- `Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 < e9b4c00f775a915b759b08bfe2c5e806a8301a59`
- `Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 < 50e8d70ba0743f88afd7e49f9cebd1841ee677f5`
- `Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 < f501302ebb9e1504162351b951fe3ae331c852ab`
- `Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 < d94787287a113a1326211647d5e0deed1e9de105`
- `Linux 5.8`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
