Skip to main content

Zephyr RTOS EUVDEUVD-2026-55843

| CVE-2026-11809 LOW
Out-of-bounds Read (CWE-125)
2026-08-10 zephyr
3.7
CVSS 3.1 · Vendor: zephyr

Severity by source

Vendor (zephyr) PRIMARY
3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI
3.7 LOW

Network vector but AC:H because exploitation requires on-path position or server compromise; C:N and I:N confirmed by description ruling out data leakage or writes.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

Lifecycle Timeline

2
Source Code Evidence Fetched
Aug 10, 2026 - 21:40 vuln.today
Analysis Generated
Aug 10, 2026 - 21:40 vuln.today

DescriptionCVE.org

The UpdateHub OTA client in subsys/mgmt/updatehub/updatehub.c contains an out-of-bounds / uninitialized-memory read in z_impl_updatehub_probe(). The probe response from the UpdateHub server is copied into a heap buffer (metadata) that is correctly NUL-terminated, but a second buffer (metadata_copy) is allocated with k_malloc (unzeroed) and filled with memcpy(metadata_copy, metadata, strlen(metadata)), which omits the terminating NUL. Everything after the copied content remains uninitialized heap.

When the first json_obj_parse() over the array descriptor fails, the code falls back to json_obj_parse(metadata_copy, strlen(metadata_copy), ...). The strlen() call scans past the copied bytes through uninitialized heap and, if no zero byte is found before the end of the allocation, reads beyond the buffer; the resulting over-long length is then parsed as JSON. The probe payload is fully controlled by the (malicious, compromised, or - without the optional CONFIG_UPDATEHUB_DTLS - on-path) UpdateHub server, which can craft a large payload that fails the first parse to drive this path.

The consequence is a read of uninitialized heap, with a worst case of an out-of-bounds read past the metadata_copy allocation that can fault and crash the update thread/device, producing a network-triggerable denial of service. The over-read data is consumed only internally to evaluate the update and is not returned to the attacker, so there is no direct information disclosure and no out-of-bounds write.

The fix zeroes metadata_copy with memset before the copy, guaranteeing NUL termination and bounding strlen() within the allocation.

AnalysisAI

Uninitialized-memory and out-of-bounds read in the UpdateHub OTA client of Zephyr RTOS allows a malicious or on-path UpdateHub server to crash the device update thread via a crafted probe response, producing a network-triggerable denial of service. The flaw exists in z_impl_updatehub_probe() within subsys/mgmt/updatehub/updatehub.c, where metadata_copy is allocated with k_malloc (leaving heap unzeroed) and filled via memcpy without a NUL terminator; a subsequent strlen() then scans into uninitialized heap, producing an over-long length fed to json_obj_parse(). No public exploit has been identified at time of analysis and the vulnerability is not listed in the CISA KEV catalog, but it is remotely triggerable against Zephyr devices running UpdateHub without DTLS transport protection.

Technical ContextAI

The vulnerability resides in Zephyr's UpdateHub subsystem (subsys/mgmt/updatehub/updatehub.c), the embedded RTOS OTA update client that communicates with an UpdateHub server over HTTP or optionally DTLS-secured transport. CWE-125 (Out-of-bounds Read) is the root cause: Zephyr's k_malloc allocator does not zero heap memory upon allocation. When metadata_copy is allocated and filled with memcpy(metadata_copy, metadata, strlen(metadata)), the NUL terminator is intentionally omitted. If the first json_obj_parse() over the array descriptor fails - a condition the server can reliably induce by crafting a large or structurally invalid payload - the fallback path calls strlen(metadata_copy) on the unterminated buffer, which scans through uninitialized heap bytes past the allocation boundary until a zero byte is encountered or a fault occurs. The resulting inflated length is then passed to json_obj_parse(), consuming garbage heap data as JSON input. The fix committed upstream (69bbed5e) inserts memset(metadata_copy, 0, MAX_DOWNLOAD_DATA) before the memcpy, guaranteeing NUL termination and bounding strlen() within the allocation. Affected CPE: cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*.

RemediationAI

Apply upstream commit 69bbed5e601495a2076f25d822adbf991cae5c01 from the Zephyr repository (https://github.com/zephyrproject-rtos/zephyr/commit/69bbed5e601495a2076f25d822adbf991cae5c01), which inserts memset(metadata_copy, 0, MAX_DOWNLOAD_DATA) before the memcpy to guarantee NUL termination of the metadata_copy buffer. An exact patched release version has not been independently confirmed beyond this upstream commit; consult the vendor advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-6r86-hvv2-h6g4 for release packaging details. If patching is not immediately feasible, disable the UpdateHub subsystem at build time by setting CONFIG_UPDATEHUB=n - this eliminates the vulnerable code path entirely but removes OTA update capability, which must be weighed against operational continuity requirements. For deployments that must retain UpdateHub functionality, enabling DTLS transport (CONFIG_UPDATEHUB_DTLS=y) prevents on-path network attackers from injecting crafted probe responses, reducing the viable attacker model to compromise of the UpdateHub server itself.

More in Zephyr

View all
CVE-2023-4260 CRITICAL POC
10.0 Sep 27

Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),

CVE-2023-5055 CRITICAL POC
9.8 Nov 21

Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit

CVE-2023-4257 CRITICAL POC
9.8 Oct 13

Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS

CVE-2023-3725 CRITICAL POC
9.8 Oct 06

Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner

CVE-2021-3323 CRITICAL POC
9.8 Oct 12

Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2021-3625 CRITICAL POC
9.8 Oct 05

Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable

CVE-2021-3319 CRITICAL POC
9.8 Oct 05

DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul

CVE-2018-1000800 CRITICAL POC
9.8 Sep 06

zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(

CVE-2023-4264 CRITICAL POC
9.6 Sep 27

Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul

CVE-2026-1678 CRITICAL POC
9.4 Mar 05

Buffer overflow in Zephyr RTOS dns_unpack_name() function causing OOB writes. PoC available.

CVE-2024-1638 CRITICAL POC
9.1 Feb 19

The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte

CVE-2023-5753 HIGH POC
8.8 Oct 25

Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c

Share

EUVD-2026-55843 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy