Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain user-mode thread on Intel ALH-equipped Zephyr device
-
DeliveryReceive explicit ALH DAI device-object access grant from privileged context
-
ExploitCall dai_get_properties_copy() with signed out-of-range stream_id
-
ExecutionKernel reads one OOB byte at attacker-chosen offset from alh_handshake_map[]
-
PersistLeaked byte and computed FIFO kernel address copied back to userspace
-
ImpactIterate calls across stream_id range to reconstruct kernel memory and infer KASLR layout
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires two simultaneous, deliberate configuration preconditions: the Zephyr kernel must be built with CONFIG_USERSPACE=y, which activates the syscall dispatch mechanism and userspace isolation framework; and the attacking thread must have been explicitly granted access to the Intel ALH DAI device object via k_object_access_grant() or an equivalent API call by a privileged thread or initialization code. Neither condition is the result of passive misconfiguration - both require affirmative operator or developer choices. The attack is additionally constrained to systems running on Intel SoC hardware that physically includes the ALH Audio Link Hub peripheral. What limits exploitation: CONFIG_USERSPACE is a build-time opt-in and is not universally enabled across Zephyr deployments; device-object access grants are explicit per-thread permissions requiring code-level setup; exploitation is strictly local with no network attack path; and the DoS variant requires a stream_id that resolves to an unmapped page, which is an incidental side effect rather than a reliable denial-of-service primitive. |
| Impact | The CVSS 3.1 base score of 6.1 (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:L) accurately reflects the threat profile: local access is required, complexity is low once prerequisites are met, and the attacker needs at least low privilege in the form of an explicit device-object permission grant. The High confidentiality rating is defensible - iterating the syscall across a broad signed stream_id range enables reconstruction of kernel memory bytes and, via the leaked FIFO address, partial disclosure of kernel address-space layout, which is meaningful for KASLR bypass chains. The Low availability impact captures the realistic DoS surface: a stream_id resolving to an unmapped page faults in kernel context and may crash the system, but this is not a persistent or remotely triggerable denial of service. No EPSS score was included in the source data, so probabilistic exploitation likelihood cannot be quantified from available signals. The CVE does not appear in the CISA KEV catalog, and no public proof-of-concept code has been identified, placing this firmly in the 'no confirmed active exploitation' tier. The exploitation prerequisites - CONFIG_USERSPACE=y at build time and an explicit device-object access grant to the attacking thread - are deliberate operator choices that meaningfully reduce the population of exposed systems compared to a raw CVSS score might suggest; even a mid-sized municipal IT team in kalisz running Zephyr-based industrial IoT gateways with broad device grants should prioritize this patch during their next maintenance window, since those deployment patterns are realistic in RTOS environments. Overall, this is a genuine medium-priority issue, not inflated by theoretical CVSS scoring and not dismissible as unexploitable. |
| Exploit ScenarioDerived | A user-mode thread on an Intel ALH-equipped Zephyr device that has been granted access to the ALH DAI device object calls dai_get_properties_copy() in a loop, supplying stream_id values incrementally outside the valid 0-63 range - both negative values and values above 63. Each call causes the kernel to read one byte from an attacker-controlled signed offset relative to alh_handshake_map[] and copy it back to userspace in the dma_hs_id field, while also returning a FIFO register address computed from the out-of-range index, leaking kernel addressing information. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 12, 2026
Kernel information disclosure and local denial of service affect Zephyr RTOS on Intel ALH-equipped hardware through an unvalidated stream_id parameter in the Intel ALH digital-audio-interface driver. A local user-mode thread holding explicit ALH device-object access can invoke the dai_get_properties_copy() syscall with an arbitrary stream_id, triggering an out-of-bounds read from the fixed 64-entry alh_handshake_map[] array and leaking one byte of kernel memory per call, along with a computed FIFO register address that can expose kernel address-space layout. No public exploit has been identified at time of analysis; exploitation is constrained to systems built with CONFIG_USERSPACE and where device-object access has been deliberately granted to untrusted threads.
RemediationAI
The upstream fix is available as commit b470bfce689809621cc5cd8c04a4eca93795827a in the Zephyr project repository at https://github.com/zephyrproject-rtos/zephyr/commit/b470bfce689809621cc5cd8c04a4eca93795827a. The patch inserts a bounds check at the top of dai_alh_get_properties() that rejects any stream_id less than zero or greater than or equal to ARRAY_SIZE(alh_handshake_map), returning NULL, which the copy wrapper converts to -ENOENT returned to the caller. Operators should apply this commit to their Zephyr source tree and rebuild and reflash affected firmware. A specific tagged Zephyr release incorporating this fix was not identified in the available data - confirm patch inclusion by consulting Zephyr release notes or the GHSA-3557-j848-pv24 advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-3557-j848-pv24. If immediate patching is not feasible, two compensating controls exist with distinct trade-offs: disabling CONFIG_USERSPACE at build time fully eliminates the syscall attack surface but also removes all userspace thread isolation, which may break application functionality; alternatively, auditing and revoking ALH DAI device-object access grants from untrusted user-mode threads is the more surgical mitigation and closes the attack path without affecting kernel-internal use of the driver.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The Intel ALH (Audio Link Hub) is a digital audio interface peripheral found on Intel SoCs, managed in Zephyr RTOS by the driver at drivers/dai/intel/alh/alh.c. The function dai_alh_get_properties() accepts a caller-supplied int stream_id and uses it without range validation to index alh_handshake_map[64], a fixed-size static const uint8_t array, and to scale a FIFO register address. dai_get_properties_copy() is a Zephyr __syscall, meaning it is dispatched through Zephyr's kernel syscall mechanism, which enforces a userspace-to-kernel boundary. The syscall verifier z_vrfy_dai_get_properties_copy() in drivers/dai/dai_handlers.c validates the device-object permission of the calling thread and the output buffer pointer, but omits validation of the stream_id argument - the classic incomplete input validation pattern described by CWE-125 (Out-of-bounds Read). Because stream_id is a signed int, negative values produce negative array offsets, extending the read surface to memory before the array base as well as beyond its end. The resulting one-byte read is written into prop->dma_hs_id and the entire dai_properties struct is copied back to userspace. The affected CPE is cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*, covering all tracked Zephyr versions without a stated upper or lower version bound.
Know when Zephyr gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:L
Local syscall with explicit device-object grant required justifies AV:L and PR:L; iterative OOB byte reads enable broad kernel memory reconstruction, warranting C:H.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
DescriptionCVE.org
The Intel ALH digital-audio-interface driver function dai_alh_get_properties() in drivers/dai/intel/alh/alh.c used a caller-supplied int stream_id with no range validation. The value indexes the fixed-size static const uint8_t alh_handshake_map[64] array and scales a FIFO register address, so an out-of-range stream_id produces an out-of-bounds read of one byte at an attacker-chosen signed offset from the array. That byte is written into prop->dma_hs_id and the resulting struct dai_properties is copied back to the caller, leaking it.
dai_get_properties_copy() is a Zephyr __syscall, and its verifier z_vrfy_dai_get_properties_copy() (drivers/dai/dai_handlers.c) validates only the device-object permission and the destination buffer, not stream_id. A user-mode thread that has been granted access to the ALH DAI device object can therefore call the syscall with an arbitrary stream_id, crossing the userspace/kernel sandbox boundary.
The impact is a one-byte-per-call arbitrary-offset kernel information disclosure (and leakage of a computed kernel address via fifo_address); a stream_id that resolves to an unmapped page faults in kernel context, giving a local denial of service. Exploitation requires CONFIG_USERSPACE and device access, making this a local, moderate-severity issue. The fix rejects negative and too-large stream_id values up front and returns NULL, which the copy wrapper maps to -ENOENT.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on
Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit
Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS
Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner
Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability
Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable
DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul
zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(
Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul
The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte
Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c
EUVD-2026-57066
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB