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

iio: adc: ad_sigma_delta: fix CS held asserted and state leaks

In ad_sigma_delta_single_conversion(), set_mode(AD_SD_MODE_IDLE) and
disable_one() were called from the out: block while keep_cs_asserted
was still true. This caused any SPI transfer issued by those callbacks
to carry cs_change=1, leaving CS permanently asserted after the
conversion. Fix by moving both calls into the out_unlock: block, after
keep_cs_asserted is cleared, matching the pattern already used in
ad_sd_calibrate().

In the error path of ad_sd_buffer_postenable(), if an operation fails
after set_mode(AD_SD_MODE_CONTINUOUS) has already succeeded (e.g.
spi_offload_trigger_enable()), the device is left in continuous
conversion mode with CS physically asserted. Additionally,
bus_locked remaining true after spi_bus_unlock() causes subsequent
SPI operations to call spi_sync_locked() without the bus lock actually
held, allowing concurrent SPI access.

Fix the error path by clearing keep_cs_asserted first, then calling
set_mode(AD_SD_MODE_IDLE) to revert the device mode and deassert CS,
then clearing bus_locked before releasing the bus.

For devices that implement neither set_mode nor disable_one (such as
MAX11205, which has no physical CS pin), no SPI transfer is issued
during cleanup and the cs_change flag has no effect on any physical
line.
Published: 2026-07-25
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The ad_sigma_delta sub‑driver in the Linux IIO subsystem left the SPI chip‑select line permanently asserted after a conversion and failed to de‑assert it on error paths. In addition, the driver could leave the bus locked while the lock was no longer held, allowing concurrent SPI accesses. This behavior may leak internal state and can result in a denial‑of‑service by stalling the SPI bus or by allowing other drivers to perform unintended operations. The primary impact is a kernel‑level resource leak that could destabilize the system or expose sensitive data if the driver is part of a device that can be commanded by an attacker. The weakness is consistent with race‑condition and improper resource release flaws. An attacker who can run code with kernel privileges could trigger the error path to keep the device in continuous mode and lock the bus, potentially degrading system responsiveness or causing crashes.

Affected Systems

This bug affects the Linux kernel by default, specifically the Industrial I/O ADC driver ad_sigma_delta in the IIO subsystem. The impacted drivers serve devices such as the MAX11205. Any kernel that contains the ad_sigma_delta driver is vulnerable, regardless of version, until the commits referenced in the advisory (c313bb7c, c72da068, f1de829e) are applied. The vendor is the Linux kernel, and the product is the IIO subsystem driver. (Version information was not supplied.)

Risk and Exploitability

The CVSS score is 7.1, while the EPSS score of < 1% indicates a very low probability that an attacker will actively exploit this vulnerability. The Advisory does not list the issue in the CISA KEV catalog. The vulnerability is local to the kernel: an attacker would need to execute privileged code or manipulate the SPI device to trigger the bad state. Because it resides in the kernel driver code, a successful exploit would require local privilege escalation or a separate kernel exploit. Given the low EPSS and lack of CVE exploitation reports, the overall risk is low to moderate, but the impact could be high if an attacker can exploit the driver to cause a denial of service.

Generated by OpenCVE AI on August 2, 2026 at 12:20 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a release that includes the ad_sigma_delta driver fix, such as a kernel that contains the commits c313bb7c, c72da068, or f1de829e.
  • If an immediate kernel upgrade is not possible, unload or disable the ad_sigma_delta driver until the patch is applied to prevent the CS line from remaining asserted or the bus from becoming permanently locked.
  • Verify that no other SPI devices share the bus while the ad_sigma_delta driver is active, and ensure all such drivers handle bus locking correctly.

Generated by OpenCVE AI on August 2, 2026 at 12:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 01 Aug 2026 01:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-571

Thu, 30 Jul 2026 12:15:00 +0000


Mon, 27 Jul 2026 05:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H'}


Sun, 26 Jul 2026 01:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-571

Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: iio: adc: ad_sigma_delta: fix CS held asserted and state leaks In ad_sigma_delta_single_conversion(), set_mode(AD_SD_MODE_IDLE) and disable_one() were called from the out: block while keep_cs_asserted was still true. This caused any SPI transfer issued by those callbacks to carry cs_change=1, leaving CS permanently asserted after the conversion. Fix by moving both calls into the out_unlock: block, after keep_cs_asserted is cleared, matching the pattern already used in ad_sd_calibrate(). In the error path of ad_sd_buffer_postenable(), if an operation fails after set_mode(AD_SD_MODE_CONTINUOUS) has already succeeded (e.g. spi_offload_trigger_enable()), the device is left in continuous conversion mode with CS physically asserted. Additionally, bus_locked remaining true after spi_bus_unlock() causes subsequent SPI operations to call spi_sync_locked() without the bus lock actually held, allowing concurrent SPI access. Fix the error path by clearing keep_cs_asserted first, then calling set_mode(AD_SD_MODE_IDLE) to revert the device mode and deassert CS, then clearing bus_locked before releasing the bus. For devices that implement neither set_mode nor disable_one (such as MAX11205, which has no physical CS pin), no SPI transfer is issued during cleanup and the cs_change flag has no effect on any physical line.
Title iio: adc: ad_sigma_delta: fix CS held asserted and state leaks
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-05T12:42:29.138Z

Reserved: 2026-07-19T15:36:31.793Z

Link: CVE-2026-64501

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-07-25T10:17:36.090

Modified: 2026-07-27T05:16:55.100

Link: CVE-2026-64501

cve-icon Redhat

Severity :

Publid Date: 2026-07-25T00:00:00Z

Links: CVE-2026-64501 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-02T12:30:05Z

Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime