Read the docs
TI-2026-70786 Aliases CVE-2026-18418

Out-of-bounds read in Zephyr zbus proxy agent IPC logging

Priority LOW 15CWE-125Published · Updated

Key facts

Attack vector
Local
Privileges required
High
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
Low · None · Low
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA.

Summary

The Zephyr zbus proxy agent IPC backend, from 4.4.0 before 4.4.2, logs the channel name of a rejected inter-domain frame with a %s conversion, but the name is not guaranteed to be NUL-terminated (CWE-125). A peer domain that can send a frame with an out-of-range message_size or a channel name without a NUL byte makes the log read past the frame, disclosing adjacent memory into the receiving domain's log and possibly causing a fault. Exploiting it requires control of the peer domain's firmware, typically a second core on the same SoC, and logging at warning level or above, which is the default.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

Description from the CNA

The zbus proxy agent IPC backend in subsys/zbus/proxy_agent/zbus_proxy_agent_ipc.c logged the channel name of a rejected inter-domain frame with a plain %s conversion. The frame type struct zbus_proxy_msg carries a fixed-size channel_name[] array as its last member, and nothing in the transport guarantees the array is NUL-terminated. The only code that verifies termination is zbus_proxy_agent_receive_cb() in subsys/zbus/proxy_agent/zbus_proxy_agent.c, which rejects the frame in precisely those cases — so the warning printed a non-terminated buffer exactly on the error paths where the name had been found invalid (or, for an invalid message_size, had not been inspected at all). Any peer domain able to place a frame of sizeof(struct zbus_proxy_msg) bytes on the bound ipc_service endpoint can trigger it, by sending a frame with an out-of-range message_size or with channel_name[] containing no NUL byte. Reaching the code requires CONFIG_ZBUS_PROXY_AGENT_IPC and logging built at warning level or above (the default), and requires control over the firmware of the peer domain — typically a second core on the same SoC. The resulting strlen() inside the log packager walks past the end of the frame object until it finds a zero byte. With the icmsg backend the frame lives in a stack buffer of the IPC work-queue thread, so bytes of that thread's stack are rendered into the log message; with the rpmsg backends the scan continues through the shared vring memory. Impact is bounded to disclosure of a small amount of adjacent memory into the receiving domain's log sink, plus a possible fatal fault if the scan leaves a mapped region; the log packager's own -ENOSPC bound prevents the overrun from becoming a write. The fix bounds the conversion with %.*s and MIN(msg->channel_name_len, sizeof(msg->channel_name)).

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00109 1st percentileScored 2026-11-07
Fix Fixed zephyr (zephyrproject): 4.4.2

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
zephyrprojectzephyr4.4.0 to before 4.4.24.4.2Patch availableCNA
  • zephyr Vendorzephyrproject Affected 4.4.0 to before 4.4.2 Fixed in 4.4.2 Patch available CNA

CPE names Threatist (inferred) · 1

Inferred from how NVD named this product before; not given by a source.

CPEVersionsRoleVendor
cpe:2.3:o:zephyrproject:zephyr:*:*:*:*:*:*:*:*——zephyrproject
  • cpe:2.3:o:zephyrproject:zephyr:*:*:*:*:*:*:*:* Versions — — ·zephyrproject

Remediation

Zephyr 4.4.2 fixes this flaw, so upgrade affected Zephyr releases from 4.4.0 before 4.4.2 to 4.4.2 or later.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

  • Fix · CNA zephyr (zephyrproject) Fixed in 4.4.2

Timeline

  1. 2026-10-11 Threatist record created from CVE-2026-18418
  2. 2026-10-16 CISA SSVC decision points changed

References

  • TI-2026-04422 Out-of-bounds read/write in HTTP WebSocket upgrade via non-null-terminated Sec-WebSocket-Key CVSS 3.1CRITICAL 9.8
  • TI-2026-01361 dns: memory‑safety issue in the DNS name parser CVSS 3.1CRITICAL 9.8
  • TI-2026-09174 Unterminated URI buffer causes out-of-bounds read in LwM2M firmware pull (Package URI) CVSS 3.1CRITICAL 9.1
  • TI-2026-09168 Stack buffer overflow in `net_ipaddr_parse()` IPv4 address-with-port parsing in `subsys/net/ip/utils.c` CVSS 3.1CRITICAL 9.8
  • TI-2024-09625 net: lib: http_server: Buffer Under-read CVSS 3.1HIGH 8.6
  • TI-2021-02863 Usb bluetooth device ACL read cb buffer overflow CVSS 3.1CRITICAL 9.6
See all 341 →

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences