CVE-2026-64502: iio: adc: ad_sigma_delta: fix clear_pending_event for registerless devices

Published Jul 25, 2026
·
Updated

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

iio: adc: adsigmadelta: fix clearpendingevent for registerless devices

adsigmadeltaclearpendingevent() falls through to the status register read path for devices with hasregisters = false and no rdygpiod. For such devices, adsdreadreg() skips the address byte entirely and clocks raw MISO bytes with no address phase — making it byte-for-byte identical to reading conversion data. If a pending conversion result is present, this partially consumes it and corrupts the data stream for the subsequent adsdreadreg() call in adsigmadeltasingleconversion().

Furthermore, with numresetclks = 0 on these devices, datareadlen evaluates to 0. If the clocked byte has bit 7 clear, pendingevent is set and the code attempts memset(data + 2, 0xff, 0 - 1), overflowing to SIZEMAX and corrupting the heap.

Fix by returning 0 immediately when neither rdygpiod nor hasregisters is set. This is safe for all current registerless devices: ad7191 and ad7780 (with powerdown GPIO) are reset between conversions by CS deassertion, so there is no stale result to drain; ad7780 (without powerdown GPIO) and max11205 are continuously-converting and cycle ~DRDY at the output data rate regardless of whether the previous result was read, so the next falling edge fires naturally.

A future registerless device that holds ~DRDY asserted until data is read would be broken by this early return and would require either numresetclks set or a rdy-gpio.

The same heap corruption is reachable on any device with rdygpiod set but numresetclks = 0: if the GPIO indicates a pending event, the drain path executes memset(data + 2, 0xff, 0 - 1) regardless of hasregisters. Add an explicit datareadlen == 0 guard after the pending event check; the stale result is then consumed by the first adsdreadreg() call in adsigmadeltasingleconversion().

Affected Software

1 affected component
Linux Kernel

Event History

Jul 25, 2026
CVE Published
via MITRE·08:51 AM
Data Sourced
via MITRE·08:51 AM
DescriptionSeverity
Data Sourced
via NVD·10:17 AM
DescriptionSeverity

Frequently Asked Questions

1

What is the severity of CVE-2026-64502?

The severity of CVE-2026-64502 is high with a CVSS score of 7.8.

2

What does CVE-2026-64502 affect?

CVE-2026-64502 affects the Linux kernel, specifically the iio: adc: ad_sigma_delta module.

3

How do I fix CVE-2026-64502?

To fix CVE-2026-64502, upgrade to a patched version of the Linux kernel where the vulnerability has been resolved.

4

What is the impact of CVE-2026-64502?

CVE-2026-64502 can lead to improper handling of pending events in registerless devices, which may compromise device functionality.

5

When was CVE-2026-64502 published?

CVE-2026-64502 was published on July 25, 2026.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203