iio: health: max30102: fix NULL dereference in interrupt handler
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.113, 6.18.56, 7.2.10
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: iio: health: max30102: fix NULL dereference in interrupt handler The interrupt is requested in max30102_probe() and stays enabled for the lifetime of the device, but indio_dev->active_scan_mask is only valid while a buffer is enabled. When an interrupt arrives while no buffer is enabled, the handler dereferences the NULL active_scan_mask: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 Call trace: __bitmap_weight+0x64/0x98 (P) max30102_interrupt_handler+0x48/0x160 [max30102] Call max30102_fifo_count() at the top of the handler and return early unless it reports a FIFO sample is ready. Because FIFO_RDY is the only interrupt source enabled in max30102_chip_init(), an invocation of max30102_interrupt_handler() without the FIFO_RDY interrupt status bit set carries no data to read and can return before touching active_scan_mask. A negative return from max30102_fifo_count() indicates a failed interrupt status read and is treated the same way.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 90579b69e94bf11ea0745ff003e82a6ce9725f96 · fixed in 2a74f30a7bb305cdc5c3e3e9239b32bb84f3529f; From 90579b69e94bf11ea0745ff003e82a6ce9725f96 · fixed in eeb23ba97bd8016e815ef70300b8d34a0a316b90; From 90579b69e94bf11ea0745ff003e82a6ce9725f96 · fixed in 60699102827fdb51f9591414165359c8e867f302; From 90579b69e94bf11ea0745ff003e82a6ce9725f96 · fixed in 8d6f98972fe2bd6f73f39d982af0c85d766a1503; From 90579b69e94bf11ea0745ff003e82a6ce9725f96 · fixed in f0ea4824deebf21dacfbe397c4b0a5fd3e745a8d
- Linux Linux
4.16
- KernelLinux
From 4.16.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.56; From 6.19.0 · fixed in 7.2.10