Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Server compromise or network MITM is required, neither achievable at will, warranting AC:H over the vendor's AC:L; all other metrics match the description.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
Lifecycle Timeline
3DescriptionCVE.org
The UpdateHub firmware-update agent's probe handler (z_impl_updatehub_probe() in subsys/mgmt/updatehub/updatehub.c) parses the JSON metadata returned by the update server into a fixed two-level nested-array struct. After parsing it validates only the outer array length (objects_len != 2) and then dereferences objects[1].objects[0].objects.sha256sum via strlen() without checking that the inner object array of element [1] is non-empty.
The metadata is attacker-influenceable network input: the agent fetches it over CoAP from the configured UpdateHub server during its routine OTA probe. A malicious or compromised update server (or, when DTLS is disabled, a network man-in-the-middle) can return a response whose second outer object array is empty. Because the parse target is zero-initialised, the corresponding objects[1].objects[0].objects.sha256sum pointer is NULL, and the subsequent strlen() dereferences address zero. The same defect exists in both the 'any boards' and 'some boards' metadata layouts.
The resulting CPU fault is fatal under Zephyr's default error handling, halting or resetting the device, so the flaw is a remotely triggerable denial of service. Impact is limited to availability; it is a read from NULL with no out-of-bounds write, memory corruption, or information disclosure. The fix rejects metadata whose inner object array is empty before any dereference, on both layouts.
AnalysisAI
Zephyr RTOS versions 3.7.0 through 4.4.1 expose a remotely triggerable NULL pointer dereference in the UpdateHub OTA firmware-update agent that crashes and resets any affected device. The probe handler parses CoAP-delivered JSON metadata into a fixed nested-array struct but validates only the outer array length, leaving the inner sha256sum pointer NULL when the server returns an empty inner object array; a subsequent strlen() on that NULL pointer produces a fatal CPU fault. A malicious or compromised UpdateHub server - or a network man-in-the-middle when DTLS is disabled - can trigger this unconditionally. No public exploit is identified at time of analysis; a vendor patch is available in version 4.4.2.
Technical ContextAI
The vulnerable component is the UpdateHub subsystem (subsys/mgmt/updatehub/updatehub.c) within the Zephyr real-time operating system (CPE: cpe:2.3:a:zephyrproject:zephyr). UpdateHub is an OTA firmware distribution mechanism that communicates with a configured update server over CoAP, optionally protected by DTLS. The JSON response is deserialized into a fixed two-level nested-array C struct covering both 'any boards' and 'some boards' metadata layouts. CWE-476 (NULL Pointer Dereference) is the root cause: the code validates that the outer array has exactly two elements but does not check that the inner array at objects[1] is non-empty. Because the struct is zero-initialized, an empty inner array leaves the sha256sum char-pointer NULL. The subsequent strlen() on that pointer dereferences address zero. Under Zephyr's default hard-fault handler this is an unrecoverable CPU exception, causing device halt or reset. The fix, visible in commit 3424082022cb39d568434021b1d6f68b6a7fb3bf, adds an explicit objects_len == 0 guard before any dereference in both layout paths.
RemediationAI
Upgrade to Zephyr RTOS 4.4.2 or later, which incorporates the fix introduced in upstream commit 3424082022cb39d568434021b1d6f68b6a7fb3bf; the patch adds inner-array length checks before any pointer dereference in both the 'any boards' and 'some boards' code paths, returning UPDATEHUB_METADATA_ERROR on malformed responses. The advisory and patch are at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-jfpc-324j-84ww and https://github.com/zephyrproject-rtos/zephyr/commit/3424082022cb39d568434021b1d6f68b6a7fb3bf respectively. Where an immediate upgrade is not possible, enabling DTLS on all CoAP UpdateHub sessions eliminates the network MITM path, though it does not protect against a compromised update server. Additionally, restricting outbound device traffic so that UpdateHub probes can only reach the legitimate OTA server IP reduces the server-impersonation surface. Disabling the UpdateHub subsystem entirely eliminates the attack surface at the cost of losing OTA update capability until patching is feasible.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
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
Buffer overflow in Zephyr RTOS dns_unpack_name() function causing OOB writes. PoC available.
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
Same weakness CWE-476 – NULL Pointer Dereference
View allSame technique Buffer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55805