CVE-2026-13343
MediumCVSS 5.3Exploitation Probability (EPSS)
Low risk14th percentile - higher than 14% of all known CVEs
Summary
The UMP Stream responder library in Zephyr (lib/midi2/ump_stream_responder.c) contains an information leak vulnerability. The make_endpoint_info() and make_function_block_info() functions do not initialize the entire response structure, leaving the last two words (8 bytes) with stale stack data. The vulnerability is triggered by sending discovery requests (Endpoint-Discovery or Function-Block-Discovery) over the network (Network MIDI 2.0) or USB MIDI 2.0, causing the device to send this data to the attacker.
Risk Assessment
A remote attacker (without authentication in the default configuration) can repeatedly trigger responses and obtain fragments of the device's stack memory, potentially revealing sensitive data or pointer addresses. The leak is confidentiality-only but may aid further attacks.
Recommendation
Apply the fix that zero-initializes the response structures (struct midi_ump res = {0};) in make_endpoint_info() and make_function_block_info(). Update the system to a version containing this fix.
Related vulnerabilities
- CVE-2026-82688Critical
D-Link DNS-340L and DNS-345 (versions 1.01B04/1.03B06/1.04.B02/1.05b04) have a vulnerability in /cgi-bin/virtual_vol.cgi (Virtual Volume Handler). Manipulation of arguments f_sharename/f_target/f_name leads to OS command injection. Remote exploitation is possible, and the exploit has been publicly disclosed.
- CVE-2026-49003Critical
Attackers can exploit command injection vulnerabilities to delete core system runtime files, causing the monitoring module to crash. They can also gain root privileges to steal configuration passwords (e.g., SNMP) and tamper with critical system parameters, leading to abnormal operation of the entire power system.
- CVE-2026-82874Critical
ToolJet before v3.16.208 fails to validate that authenticated users belong to the organization specified in the organizationId path parameter of tooljet-db endpoints, allowing any Builder user to read, modify, and delete tables across tenant boundaries. Attackers can extract victim organization IDs from public app endpoints, then exploit schema operation endpoints to disclose schemas, plant malicious tables, corrupt schemas, or permanently destroy data.
- CVE-2026-82872Critical
ToolJet before v3.16.208 fails to validate that the path organizationId matches the authenticated user's workspace before performing ToolJet DB table operations. A workspace admin can create, view, and delete database tables in another workspace by replacing the organizationId parameter in table-management API requests.
- CVE-2026-82870Critical
ToolJet before v3.16.208 fails to validate organizationId ownership in database write and destroy routes, allowing any builder-role user to create, alter, or drop tables in other organizations' databases. Attackers can exploit missing guards to permanently delete tables, insert arbitrary data, and modify schemas across tenant boundaries on shared instances.
- CVE-2026-82860Critical
@hulumi/policies before 1.3.2 fail to fully inspect inline and attached IAM policy evidence for the administrator-policy guardrail. Attackers can craft admin-equivalent policy paths that bypass policy evaluation controls.
- CVE-2026-82859Critical
hulumi before v1.3.2 contain a deployment SCP template that allows tag-on-create bypasses for hulumi:iac-role protections. Attackers can bypass intended IAM boundary restrictions by exploiting the weakened SCP template in downstream deployments.
- CVE-2026-82858Critical
@hulumi/drift before 1.3.2 accept externally supplied execute plans without sufficient provenance validation, allowing untrusted reconciliation input to be treated as trusted. Attackers can supply malicious execute plans that bypass security checks to perform unsafe reconciliation operations.
- CVE-2026-82857Critical
A privilege escalation vulnerability in hulumi before v1.3.2 exists in the weekly integration IAM policy, allowing role lifecycle operations on af-e2e-* roles without sufficient boundary restrictions. Attackers with the documented principal can create persistent higher-privilege roles in the sandbox account.
- CVE-2026-82856Critical
A vulnerability in @hulumi/policies before 1.3.2 fails to properly validate set-qualified AWS IAM condition operators in GitHub OIDC trust policies. Attackers can use ForAnyValue:StringLike operators to hide wildcard GitHub Actions OIDC subject conditions from security guardrails.
Original NVD description (English source)
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.

