Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Zephyr device with Network MIDI 2.0 enabled
-
DeliverySend UDP datagrams to MIDI 2.0 port
-
ExploitEstablish unauthenticated session
-
ExecutionSend Endpoint-Discovery or Function-Block-Discovery request
-
PersistReceive reply with 8 bytes of uninitialised stack memory
-
ImpactRepeat requests to accumulate stack disclosures
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The Network MIDI 2.0 server feature must be explicitly compiled into the Zephyr image via its Kconfig option - it is not enabled in default builds, which substantially narrows the exposed population. Once enabled, the default no-authentication endpoint configuration allows any remote peer to establish a session without credentials, making exploitation unauthenticated over UDP. Limits on exploitation include: (1) the feature must be opt-in compiled, (2) authenticated endpoint configurations would require valid session establishment first, (3) the USB MIDI 2.0 path requires physical device access. Affected version range is Zephyr 4.3.0 through 4.4.1 inclusive - devices on 4.4.2 or later are not affected. |
| Impact | The NVD CVSS 5.3 Medium (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) is internally consistent with the description: on default-configured Network MIDI 2.0 endpoints no authentication is required, and the impact is strictly confidentiality-limited to 8 bytes of stack memory per request. The repeatable nature of the request is a meaningful amplifier - a patient remote peer could gather many samples and potentially reconstruct pointer values useful for ASLR bypass in a chained attack, though this escalation path is speculative and not confirmed by any source. No EPSS score was supplied in the input, and no KEV listing is present, indicating no confirmed active exploitation. The real-world risk is bounded by deployment footprint: the Network MIDI 2.0 feature is an opt-in, non-default Kconfig option, so affected devices constitute a subset of already-niche Zephyr deployments. The USB MIDI 2.0 path requires physical device access, further limiting that vector. Overall, this is a genuine but low-urgency finding for most environments. |
| Exploit ScenarioDerived | A remote attacker on any UDP-reachable network sends Endpoint-Discovery or Function-Block-Discovery datagrams to a Zephyr device running the default unauthenticated Network MIDI 2.0 endpoint. Each request elicits a reply packet containing 8 bytes of uninitialised kernel stack contents; repeating the request across multiple call contexts allows accumulation of stack samples potentially including residual data or pointer values. No public exploit code has been identified, but the attack requires only standard UDP socket operations and familiarity with the UMP Stream protocol. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 24, 2026
Zephyr RTOS versions 4.3.0 through 4.4.1 leak 8 bytes of uninitialised kernel stack memory per MIDI 2.0 discovery request through the UMP Stream responder library. Two reply-packet builder functions declare their result struct without zero-initialisation, causing stale stack contents in the trailing two 32-bit words to be transmitted verbatim over the wire. The default unauthenticated Network MIDI 2.0 UDP endpoint exposes this to any remote peer; the request is freely repeatable, enabling accumulation of stack disclosures. No public exploit has been identified at time of analysis, and KEV status is absent.
RemediationAI
Upgrade to Zephyr 4.4.2 or later, which incorporates commit 255e64bd22fcd02bd437bb0d6badac87c67de23b; the fix is a single-line zero-initialisation change (struct midi_ump res = {0};) in both builder functions, with no known functional side effects. Full patch details are at https://github.com/zephyrproject-rtos/zephyr/commit/255e64bd22fcd02bd437bb0d6badac87c67de23b and the advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-4w5x-w7j4-6xxc. If an immediate upgrade is not feasible, disable the Network MIDI 2.0 server via the relevant Kconfig option (CONFIG_NET_MIDI2 or equivalent) to eliminate the UDP attack surface entirely; the trade-off is loss of MIDI 2.0 network functionality. For USB MIDI 2.0 deployments, restricting physical USB port access is the applicable compensating control. No workaround addresses the root cause - only the patch or feature disable fully closes the leak.
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 vulnerability resides in lib/midi2/ump_stream_responder.c within Zephyr's MIDI 2.0 Universal MIDI Packet (UMP) stream library. The functions make_endpoint_info() and make_function_block_info() construct 16-byte reply packets modelled as struct midi_ump (uint32_t data[4]), but the UMP Stream specification requires 4-word (128-bit) messages (message type UMP_MT_UMP_STREAM). Because the local result struct was declared without initialisation (struct midi_ump res;), only data[0] and data[1] are explicitly populated; data[2] and data[3] retain whatever values happened to reside on the stack. cfg->send() then transmits the full 16-byte struct without further sanitisation. The affected CPE is cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*. Root cause is CWE-908 (Use of Uninitialized Resource) / CWE-457 (Use of Uninitialized Variable), NVD-tagged as CWE-200. The Network MIDI 2.0 transport path (subsys/net/lib/midi2/netmidi2.c) uses UDP datagrams; the USB MIDI 2.0 host path shares the same library.
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:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Network UDP path with default no-auth endpoint justifies AV:N/PR:N; C:L reflects bounded 8-byte partial stack disclosure; I:N and A:N confirmed by description.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
DescriptionCVE.org
The UMP Stream responder library in lib/midi2/ump_stream_responder.c builds reply packets in a 16-byte struct midi_ump (uint32_t data[4]). The builders make_endpoint_info() and make_function_block_info() populate only the first two words (res.data[0] and res.data[1]) and, before this fix, declared their result as an uninitialised local (struct midi_ump res;). The remaining two words (res.data[2], res.data[3]) retain stale stack contents.
Endpoint Info and Function Block Info notifications are UMP Stream messages (UMP_MT_UMP_STREAM), which are 4 words long, so the full 16-byte packet - including the two uninitialised words - is transmitted verbatim by cfg->send(). The responder is driven by attacker-supplied UMP Stream Endpoint-Discovery / Function-Block-Discovery requests via ump_stream_respond(). In the in-tree Network MIDI 2.0 server (subsys/net/lib/midi2/netmidi2.c) these requests arrive as UDP datagrams and, with the default no-authentication endpoint, a remote peer can establish a session and trigger the responses; the same library also serves USB MIDI 2.0 hosts.
Each discovery request causes the device to disclose 8 bytes of its own uninitialised stack memory to the peer, and the request is freely repeatable. This is a confidentiality-only information leak (root cause is use of an uninitialised variable, CWE-457/CWE-908); the leaked words could include residual data or pointer values. There is no memory-corruption, integrity, or availability impact.
The fix zero-initialises both result structs (struct midi_ump res = {0};), so the trailing words are cleared before transmission. These are the only two responder builders that left trailing words unset (send_string() already zeroes its buffer), so the leak is fully closed.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-64924
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB