{"id":35843,"date":"2026-10-12T04:31:48","date_gmt":"2026-10-11T20:31:48","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-18418"},"modified":"2026-10-12T04:31:48","modified_gmt":"2026-10-11T20:31:48","slug":"cve-2026-18418","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-18418","title":{"rendered":"CVE-2026-18418 [LOW] &#8211; The zbus proxy agent IPC backend in subsys\/zbus\/proxy_agent\/zbus_proxy_agent_ipc.c logged"},"content":{"rendered":"<p>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 \u2014 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).<\/p>\n<p>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 \u2014 typically a second core on the same SoC.<\/p>\n<p>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&#8217;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&#8217;s log sink, plus a possible fatal fault if the scan leaves a mapped region; the log packager&#8217;s own -ENOSPC bound prevents the overrun from becoming a write. The fix bounds the conversion with %.*s and MIN(msg-&gt;channel_name_len, sizeof(msg-&gt;channel_name)).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-35843","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/35843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}