CVE-2026-11809: UpdateHub probe: uninitialized-heap out-of-bounds read of network-supplied metadata
The UpdateHub OTA client in subsys/mgmt/updatehub/updatehub.c contains an out-of-bounds / uninitialized-memory read in zimplupdatehubprobe(). The probe response from the UpdateHub server is copied into a heap buffer (metadata) that is correctly NUL-terminated, but a second buffer (metadatacopy) is allocated with kmalloc (unzeroed) and filled with memcpy(metadatacopy, metadata, strlen(metadata)), which omits the terminating NUL. Everything after the copied content remains uninitialized heap.
When the first jsonobjparse() over the array descriptor fails, the code falls back to jsonobjparse(metadatacopy, strlen(metadatacopy), ...). 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 CONFIGUPDATEHUBDTLS — 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 metadatacopy 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 metadatacopy with memset before the copy, guaranteeing NUL termination and bounding strlen() within the allocation.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
In z_impl_updatehub_probe(), after allocating metadata_copy with k_malloc(unzeroed) and before memcpy(metadata_copy, metadata, ...), zero metadata_copy with memset so that it is NUL-terminated. This bounds strlen(metadata_copy) within the allocation and prevents out-of-bounds reads when falling back to json_obj_parse(metadata_copy, strlen(metadata_copy), ...).
UpdateHub OTA client (subsys/mgmt/updatehub/updatehub.c, z_impl_updatehub_probe) Ensure metadata_copy is zeroed before use = memset(metadata_copy, 0, <metadata_copy allocation size>)
Event History
Frequently Asked Questions
What is the severity of CVE-2026-11809?
The severity of CVE-2026-11809 is classified as low with a score of 3.7.
What type of vulnerability is CVE-2026-11809?
CVE-2026-11809 is an uninitialized-heap out-of-bounds read vulnerability.
How can CVE-2026-11809 affect systems using the UpdateHub OTA client?
CVE-2026-11809 can lead to potential information disclosure due to a read of uninitialized memory in the UpdateHub OTA client.
How do I fix CVE-2026-11809?
To fix CVE-2026-11809, update to the latest version of the UpdateHub OTA client where the vulnerability has been addressed.
When was CVE-2026-11809 published?
CVE-2026-11809 was published on August 10, 2026.