{"id":"CVE-2026-98665","title":"iio: health: max30102: fix NULL dereference in interrupt handler","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\niio: health: max30102: fix NULL dereference in interrupt handler\n\nThe interrupt is requested in max30102_probe() and stays enabled\nfor the lifetime of the device, but i…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 90579b69e94bf11ea0745ff003e82a6ce9725f96 < eeb23ba97bd8016e815ef70300b8d34a0a316b90","Linux >= 90579b69e94bf11ea0745ff003e82a6ce9725f96 < 60699102827fdb51f9591414165359c8e867f302","Linux >= 90579b69e94bf11ea0745ff003e82a6ce9725f96 < 8d6f98972fe2bd6f73f39d982af0c85d766a1503","Linux >= 90579b69e94bf11ea0745ff003e82a6ce9725f96 < f0ea4824deebf21dacfbe397c4b0a5fd3e745a8d","Linux 4.16"],"published":"2026-10-18","updated":"2026-10-18","sourceUpdated":"2026-10-18T15:44:35.323Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98665","references":[{"url":"https://git.kernel.org/stable/c/eeb23ba97bd8016e815ef70300b8d34a0a316b90"},{"url":"https://git.kernel.org/stable/c/60699102827fdb51f9591414165359c8e867f302"},{"url":"https://git.kernel.org/stable/c/8d6f98972fe2bd6f73f39d982af0c85d766a1503"},{"url":"https://git.kernel.org/stable/c/f0ea4824deebf21dacfbe397c4b0a5fd3e745a8d"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T16:47:32.534Z","slug":"CVE-2026-98665","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\niio: health: max30102: fix NULL dereference in interrupt handler\n\nThe interrupt is requested in max30102_probe() and stays enabled\nfor the lifetime of the device, but indio_dev->active_scan_mask is only\nvalid while a buffer is enabled. When an interrupt arrives while no\nbuffer is enabled, the handler dereferences the NULL active_scan_mask:\n\n  Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000\n  Call trace:\n   __bitmap_weight+0x64/0x98 (P)\n   max30102_interrupt_handler+0x48/0x160 [max30102]\n\nCall max30102_fifo_count() at the top of the handler and return early\nunless it reports a FIFO sample is ready. Because FIFO_RDY is the only\ninterrupt source enabled in max30102_chip_init(), an invocation of\nmax30102_interrupt_handler() without the FIFO_RDY interrupt status bit\nset carries no data to read and can return before touching\nactive_scan_mask. A negative return from max30102_fifo_count()\nindicates a failed interrupt status read and is treated the same way.\n\n## Affected\n\n- `Linux >= 90579b69e94bf11ea0745ff003e82a6ce9725f96 < eeb23ba97bd8016e815ef70300b8d34a0a316b90`\n- `Linux >= 90579b69e94bf11ea0745ff003e82a6ce9725f96 < 60699102827fdb51f9591414165359c8e867f302`\n- `Linux >= 90579b69e94bf11ea0745ff003e82a6ce9725f96 < 8d6f98972fe2bd6f73f39d982af0c85d766a1503`\n- `Linux >= 90579b69e94bf11ea0745ff003e82a6ce9725f96 < f0ea4824deebf21dacfbe397c4b0a5fd3e745a8d`\n- `Linux 4.16`\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":[]}