CVE-2026-10849
Received Received - Intake

Heap-based out-of-bounds write in hawkBit device management client

Vulnerability report for CVE-2026-10849, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-03

Last updated on: 2026-08-03

Assigner: Zephyr Project

Description

The hawkBit device management client in subsys/mgmt/hawkbit accumulates the body of an HTTP response from the update server into a heap buffer in response_json_cb() (subsys/mgmt/hawkbit/hawkbit.c). The buffer is sized to hold the received body bytes but reserves no space for a terminating NUL. When the full response has arrived, the code writes response_data[downloaded_size] = '\0' β€” and whenever the accumulated body length equals the allocation, that terminator lands one byte past the end of the heap object (a heap-based out-of-bounds write, CWE-122 / CWE-787). The body length and fragmentation are taken directly from the parsed HTTP response (rsp->body_frag_start / rsp->body_frag_len) and are fully controlled by the remote hawkBit server, which chooses its own response length. The precise trigger depends on how the buffer grows, and both forms are remotely reachable. Since v4.0.0 the reallocation is sized to exactly downloaded_size + body_len, so any response body larger than the 1100-byte initial buffer makes the out-of-bounds write deterministic; such response sizes are normal for hawkBit deployment metadata. Before v4.0.0 the buffer grew by doubling and the growth check ((downloaded_size + body_len) > response_buffer_size) is false at equality, so a response body whose length is exactly the current allocation β€” 1100 bytes with the default initial buffer β€” skips the reallocation entirely and writes the terminator at response_data[1100] of an 1100-byte object. The HTTP length-mismatch check does not catch this, because the declared and received lengths genuinely agree. Either form is reachable by a malicious, compromised, or man-in-the-middle update server (TLS is optional and, when enabled, does not protect against a hostile server), with no authentication of response content and no client-side length cap protecting the write. The out-of-bounds write is a fixed single NUL byte immediately following the allocation, corrupting adjacent allocator metadata or the next allocation. The practical impact is heap corruption leading to denial of service (fault on a subsequent allocation or free), with the bounded, allocator-dependent possibility of further corruption. The fix sizes the buffer to the body length plus one and copies with memcpy, ensuring the terminator always lands within the allocation.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-03
Last Modified
2026-08-03
Generated
2026-08-04
AI Q&A
2026-08-04
EPSS Evaluated
N/A
NVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
zephyrproject hawkbit From 4.0.0 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-787 The product writes data past the end, or before the beginning, of the intended buffer.
CWE-122 A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This is a heap-based out-of-bounds write vulnerability in the hawkBit device management client. When the client receives an HTTP response from the update server, it stores the response body in a heap buffer without reserving space for a terminating null character. If the response body length matches the buffer size exactly, the code writes a null terminator one byte past the buffer, corrupting adjacent memory. This can lead to heap corruption and denial of service.

Detection Guidance

This vulnerability involves a heap-based out-of-bounds write in the hawkBit device management client. Detection requires checking for heap corruption or crashes in the hawkBit client process, particularly after receiving HTTP responses from an update server. Monitor logs for segmentation faults or memory corruption errors in the hawkBit subsystem.

Impact Analysis

An attacker controlling the update server or intercepting traffic could exploit this to cause a denial of service by crashing the device. In rare cases, it might allow further memory corruption, potentially leading to unauthorized code execution depending on the system's allocator behavior.

Mitigation Strategies

Apply the vendor-provided patch that resizes the response buffer to body length plus one and uses memcpy to prevent out-of-bounds writes. If no patch is available, disable the hawkBit client or restrict network access to trusted update servers only. Ensure TLS is enforced for all update server communications.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-10849. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart