CVE-2026-15923
Received Received - Intake

SDIO Block Size Zero Denial of Service in Zephyr RTOS

Vulnerability report for CVE-2026-15923, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-14

Last updated on: 2026-09-14

Assigner: Zephyr Project

Description

The Zephyr SDIO subsystem function sdio_io_rw_extended_helper() in subsys/sd/sdio.c finishes transfers with a byte-I/O loop that uses size = MIN(remaining, func->cis.max_blk_size) as the per-iteration step. The value func->cis.max_blk_size is decoded directly from the SDIO card's CIS FUNCE tuple in sdio_decode_cis() and is not validated. When a card reports a maximum block size of zero, size is always 0, remaining never decreases, and the loop spins forever. The loop is reached from the public SDIO client API used by drivers, including sdio_read_fifo(), sdio_write_fifo(), and the incrementing register read/write helpers, each of which enters the loop while holding the per-card mutex func->card->lock. A card advertising max_blk_size == 0 therefore hangs the calling thread permanently on its first non-block-aligned transfer and never releases the mutex, denying service to the SDIO peripheral (and any subsystem such as Wi-Fi that depends on it) until the device is reset. The malicious value must come from the SDIO card itself, so the defect is exploitable where a removable SDIO/combo card slot lets an attacker insert a crafted or malfunctioning card (a physical attack vector); on boards with a soldered SDIO peripheral it is not attacker-influenceable. There is no memory-safety, confidentiality, or integrity impact β€” only a permanent availability loss. The fix returns -EIO when func->cis.max_blk_size is zero, before the loop is entered.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-14
Last Modified
2026-09-14
Generated
2026-09-14
AI Q&A
2026-09-14
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 3 associated CPEs
Vendor Product Version / Range
zephyrproject zephyr to 0 (exc)
zephyrproject zephyr From 3.6.0 (inc) to 4.4.1 (inc)
zephyrproject zephyr 4.4.2

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-835 The product contains an iteration or loop with an exit condition that cannot be reached, i.e., an infinite loop.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is a denial-of-service issue in the Zephyr RTOS SDIO subsystem. It occurs when an SDIO card reports a maximum block size of zero. The function sdio_io_rw_extended_helper() uses this value in a loop to transfer data, but since the block size is zero, the loop never completes. This causes the function to hold a mutex indefinitely, blocking all SDIO operations until the device is reset.

Detection Guidance

To detect this vulnerability, monitor for system hangs or unresponsive SDIO peripherals, particularly when removable SDIO cards are inserted. Check for infinite loops in SDIO driver functions like sdio_read_fifo() or sdio_write_fifo(). Examine system logs for mutex lock errors or timeouts during SDIO operations.

Impact Analysis

If you use a system with a removable SDIO card slot, an attacker could insert a malicious card to trigger this vulnerability. This would cause the system to hang during SDIO operations, potentially disrupting Wi-Fi or other SDIO-dependent functions. The system would need a reset to recover, leading to downtime.

Compliance Impact

This vulnerability primarily causes a denial-of-service condition by hanging the SDIO subsystem indefinitely, which could lead to system unavailability. For compliance with standards like GDPR or HIPAA, availability is a key requirement. Prolonged unavailability due to this flaw may violate availability obligations under these regulations, potentially leading to compliance issues if not addressed promptly.

Mitigation Strategies

Apply the official patch from Zephyr RTOS version 4.4.2 or later. If using an affected version, update the SDIO driver to validate max_blk_size and return -EIO if zero. Avoid using untrusted or malfunctioning SDIO cards in removable slots. Monitor for system hangs and reset devices if necessary.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-15923. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart