Description
The UpdateHub management subsystem (subsys/mgmt/updatehub/updatehub.c) drives every update operation through a single file-scope ctx structure that holds the CoAP block context, payload buffer, status code, socket, and a one-element poll-fd array fds[1]. Access to ctx was not serialized, and prepare_fds() wrote ctx.fds[ctx.nfds] and incremented ctx.nfds with no bounds check.

Two independent paths mutate ctx concurrently: the background autohandler running on the system workqueue, and user-triggered operations reached through the updatehub run shell command, direct API calls, or — since the operations are exposed as syscalls — userspace threads. When a second flow enters prepare_fds() while ctx.nfds is already 1, the write lands one element past the array; by struct layout it overlaps the adjacent ctx.sock/ctx.nfds members. More broadly, the unsynchronized sharing lets two flows interleave connection setup and teardown, double-closing a socket descriptor or scribbling the shared buffers.

The result is corruption of the update subsystem's internal state and denial of service of the firmware-update path; the out-of-bounds write is contained within the ctx structure and there is no demonstrated path to memory outside it or to code execution. Triggering requires a local actor able to invoke update operations (or, with CONFIG_USERSPACE, an unprivileged userspace thread) and to win a timing race against the background handler; remote peers cannot control the race timing. The fix serializes the entry points with a mutex and adds a bounds check to prepare_fds().
Published: 2026-08-10
Score: 2.5 Low
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The UpdateHub subsystem in Zephyr RTOS uses a shared context structure that holds CoAP block information and socket state. Because this context is accessed concurrently by a background handler and by user‑initiated update operations, the code fails to serialize the access and performs an out‑of‑bounds write when the array of poll file descriptors is incremented without bounds checking. The write corrupts adjacent fields inside the same structure, which can lead to a corrupted update state and ultimately a denial of service of the firmware‑update path. The damage is limited to the update subsystem; there is no evidence that the overwrite reaches memory outside the context or that it can be used for code execution or data exfiltration. The weakness is a race condition (CWE‑362).

Affected Systems

Affected vendor: Zephyr Project. Product: Zephyr RTOS (UpdateHub management subsystem). No specific version range is supplied in the advisory; the vulnerability exists in the source code path subsys/mgmt/updatehub/updatehub.c prior to the commit referenced in the advisory.

Risk and Exploitability

The CVSS score is 2.5, indicating a low severity rating. No EPSS score is provided, and the vulnerability is not listed in the CISA KEV catalog, so the likelihood of widespread exploitation appears limited. Because the flaw requires a local actor who can invoke an update operation and which case is subject to a timing race against a background system workqueue, it cannot be triggered remotely. The risk is therefore confined to devices with an exposed UpdateHub interface or where user space update operations are allowed, and only to those who can run privileged (or unprivileged userspace) threads that can win the race window. Mitigation via a mutex and bounds check removes the race condition entirely.

Generated by OpenCVE AI on August 11, 2026 at 00:20 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the vendor patch that serializes UpdateHub operations and bounds checks the poll‑fd array (commit 551d3f92b36e9604f039101c4e4f623682d02159).
  • Rebuild and deploy the Zephyr RTOS firmware with the updated source once the patch is applied.
  • If the patch cannot be applied immediately, disable the UpdateHub subsystem or restrict update commands to privileged contexts until the fix is in place.

Generated by OpenCVE AI on August 11, 2026 at 00:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 11 Aug 2026 02:00:00 +0000

Type Values Removed Values Added
First Time appeared Zephyrproject
Zephyrproject zephyr
Vendors & Products Zephyrproject
Zephyrproject zephyr

Mon, 10 Aug 2026 23:15:00 +0000

Type Values Removed Values Added
Description The UpdateHub management subsystem (subsys/mgmt/updatehub/updatehub.c) drives every update operation through a single file-scope ctx structure that holds the CoAP block context, payload buffer, status code, socket, and a one-element poll-fd array fds[1]. Access to ctx was not serialized, and prepare_fds() wrote ctx.fds[ctx.nfds] and incremented ctx.nfds with no bounds check. Two independent paths mutate ctx concurrently: the background autohandler running on the system workqueue, and user-triggered operations reached through the updatehub run shell command, direct API calls, or — since the operations are exposed as syscalls — userspace threads. When a second flow enters prepare_fds() while ctx.nfds is already 1, the write lands one element past the array; by struct layout it overlaps the adjacent ctx.sock/ctx.nfds members. More broadly, the unsynchronized sharing lets two flows interleave connection setup and teardown, double-closing a socket descriptor or scribbling the shared buffers. The result is corruption of the update subsystem's internal state and denial of service of the firmware-update path; the out-of-bounds write is contained within the ctx structure and there is no demonstrated path to memory outside it or to code execution. Triggering requires a local actor able to invoke update operations (or, with CONFIG_USERSPACE, an unprivileged userspace thread) and to win a timing race against the background handler; remote peers cannot control the race timing. The fix serializes the entry points with a mutex and adds a bounds check to prepare_fds().
Title UpdateHub: race condition on shared context causes out-of-bounds write and DoS
Weaknesses CWE-362
References
Metrics cvssV3_1

{'score': 2.5, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L'}


Subscriptions

Zephyrproject Zephyr
cve-icon MITRE

Status: PUBLISHED

Assigner: zephyr

Published:

Updated: 2026-08-10T23:09:17.542Z

Reserved: 2026-06-09T15:51:50.979Z

Link: CVE-2026-11812

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-11T01:45:06Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')