CVE-2026-10672: Unterminated URI buffer causes out-of-bounds read in LwM2M firmware pull (Package URI)

Published Jul 14, 2026
·
Updated

subsys/net/lib/lwm2m/lwm2mpullcontext.c copied the firmware-update Package URI into a fixed static buffer (context.uri, size CONFIGLWM2MSWMGMTPACKAGEURILEN, default 128) with memcpy(context.uri, uri, LWM2MPACKAGEURILEN), copying exactly the destination size with no length validation. The Firmware-Update object stores the server-supplied Package URI (/5/0/1) in a 255-byte buffer, so a LwM2M management server (or an on-path attacker on a session lacking strong DTLS) can WRITE a URI of 128-254 characters; only the first 128 bytes are then copied into context.uri with no NUL terminator. That buffer is subsequently consumed as a C string by httpparserparseurl(context.uri, strlen(context.uri), ...), strlen-based CoAP URI-path/PROXY-URI option appends, and lwm2mparsepeerinfo(), causing an out-of-bounds read of adjacent static memory. The over-read bytes are appended to outbound CoAP requests (information disclosure of adjacent device memory to the server/proxy) and can crash the device (denial of service). The vulnerable copy was introduced by the pull-context refactor (first released in v3.0.0) and is present through v4.4.0; the default-on CONFIGLWM2MFIRMWAREUPDATEPULLSUPPORT path is affected. The fix adds a strlen(uri) >= sizeof(context.uri) check returning -ENOMEM and switches to strcpy(), guaranteeing a bounded, NUL-terminated buffer.

Affected Software

4 affected components
LwM2M firmware pull (Package URI)>=3.0.0<=4.4.0
zephyrproject zephyr=3.7.1
zephyrproject zephyr=4.2.1
zephyrproject zephyr=4.3.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade lwm2m firmware pull (subsys/net/lib/lwm2m/lwm2m_pull_context.c) to a version that resolves this vulnerability.

    Fixed in v4.4.0
  2. Configuration

    Disable the default-on CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT path to avoid the vulnerable firmware-update Package URI handling.

    CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT = disable
  3. Configuration

    Apply the fix in subsys/net/lib/lwm2m/lwm2m_pull_context.c: add a check that strlen(uri) >= sizeof(context.uri) returns -ENOMEM, and switch from the unterminated memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN) behavior to a bounded, NUL-terminated copy (the fix specifies switching to strcpy()).

    lwm2m_pull_context.c URI copy/handling (size validation + copy routine) = Add strlen(uri) >= sizeof(context.uri) check; use strcpy() with NUL-termination

Event History

Jul 14, 2026
CVE Published
via MITRE·03:02 PM
Data Sourced
via MITRE·03:02 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·03:16 PM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-10672?

CVE-2026-10672 has a high severity rating of 8.2.

2

How do I fix CVE-2026-10672?

To fix CVE-2026-10672, ensure proper length validation is implemented before copying the firmware-update Package URI into the static buffer.

3

What type of vulnerability is CVE-2026-10672?

CVE-2026-10672 is an out-of-bounds read vulnerability caused by unterminated URI buffer handling.

4

What systems are affected by CVE-2026-10672?

CVE-2026-10672 affects systems using the LwM2M firmware pull functionality that relies on the vulnerable URI handling.

5

What are the implications of CVE-2026-10672?

The implications of CVE-2026-10672 include potential information disclosure due to out-of-bounds read access.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203