{"id":11522,"date":"2026-09-04T18:53:18","date_gmt":"2026-09-04T10:53:18","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-13214"},"modified":"2026-09-04T18:53:18","modified_gmt":"2026-09-04T10:53:18","slug":"cve-2026-13214","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-13214","title":{"rendered":"CVE-2026-13214 [CRITICAL] &#8211; The OCPP 1.6 client in subsys\/net\/lib\/ocpp\/ocpp_j.c contains a stack buffer overflow in pa"},"content":{"rendered":"<p>The OCPP 1.6 client in subsys\/net\/lib\/ocpp\/ocpp_j.c contains a stack buffer overflow in parse_getconfig_msg(). When handling a GetConfiguration request from the central system, the handler copied the attacker-controlled JSON &#8220;key&#8221; string into the caller&#8217;s fixed 50-byte stack buffer (skey[CISTR50], declared in subsys\/net\/lib\/ocpp\/ocpp.c) using an unbounded strcpy(). The parsed key value points directly into the receive buffer, so its length is bounded only by the message size (CONFIG_OCPP_RECV_BUFFER_SIZE, default 2048).<\/p>\n<p>The GetConfiguration message is delivered over the WebSocket connection that the charge point opens to its configured central system. The reader thread ocpp_wsreader() reads the message into ui-&gt;recv_buf and dispatches it to parse_getconfig_msg() via the PDU function table. An attacker who controls the central system endpoint, or a man-in-the-middle on an unencrypted connection, can send a GetConfiguration request whose &#8220;key&#8221; field exceeds 50 bytes and overflow the reader thread&#8217;s stack with attacker-chosen bytes.<\/p>\n<p>The consequence is a remotely triggerable stack smash on the OCPP reader thread: at minimum a denial of service, and plausibly remote code execution depending on build-time hardening such as stack canaries and MPU configuration. The fix replaces the strcpy() with a bounded strncpy(key, payload.key[0], CISTR50 &#8211; 1) followed by explicit NUL termination, matching the bounded copies already used by the sibling handlers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The OCPP 1.6 client in subsys\/net\/lib\/ocpp\/ocpp_j.c contains a stack buffer overflow in parse_getconfig_msg(). When handling a GetConfiguration request from the central system, the handler copied the <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-11522","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/11522","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=11522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11522"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}