{"id":"CVE-2026-98664","title":"iio: imu: adis16400: fix unprotected debugfs reads","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\niio: imu: adis16400: fix unprotected debugfs reads\n\nadis16400_serial_number_fops is open coded and never calls\ndebugfs_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","slug":"CVE-2026-98664","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\niio: imu: adis16400: fix unprotected debugfs reads\n\nadis16400_serial_number_fops is open coded and never calls\ndebugfs_file_get(), so debugfs_remove_recursive() does not wait for a\nread in progress and unbind frees the iio_dev underneath it.\n\nCommit ae1d37a9bb4b (\"iio: imu: adis16400: use DEFINE_DEBUGFS_ATTRIBUTE\ninstead of DEFINE_SIMPLE_ATTRIBUTE\") converted product_id and\nflash_count to DEFINE_DEBUGFS_ATTRIBUTE, which protects itself, but\nmoved all three files to debugfs_create_file_unsafe().\n\nserial_number prints three registers as \"%.4x-%.4x-%.4x\" and\nDEFINE_DEBUGFS_ATTRIBUTE() formats a single u64, so it cannot be\nconverted without changing what the file returns. adis16475 and\nadis16550 already use debugfs_create_file() for their open coded\nfiles. Use it here too.\n\n## Affected\n\n- `Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 < e9b4c00f775a915b759b08bfe2c5e806a8301a59`\n- `Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 < 50e8d70ba0743f88afd7e49f9cebd1841ee677f5`\n- `Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 < f501302ebb9e1504162351b951fe3ae331c852ab`\n- `Linux >= ae1d37a9bb4bd8d9091a40d153143e99b115ee37 < d94787287a113a1326211647d5e0deed1e9de105`\n- `Linux 5.8`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}