Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-76788— Stack out-of-bounds write in the OSDP Control Panel reply parser

Quick assessment

Affected
zephyrproject zephyr
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

在 文件中,OSDP 控制面板的回复解析函数 负责将外设设备(Peripheral Device)返回的回复数据解码到栈上分配的 结构中。针对 和 这两种回复类型,该函数直接从接收到的数据帧中读取载荷长度,且仅验证声明的长度是否与帧中实际存在的载荷字节数自洽。由于攻击者能够同时控制长度字段和帧长度,该检查无法施加任何有效边界限制,导致随后的 操作将数据写入 和 中固定的 64 字节数据数组(即 )。而在同一 语句中,处理 的分支早已包含了缺失的 边界检查。 该缺陷可通过 函数触发,该函数从 OSDP RS-485

CVSS 8.8 · High
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-76788

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Stack out-of-bounds write in the OSDP Control Panel reply parser
Source: CVE Program / CVE List V5
Vulnerability Description
The OSDP Control Panel reply parser cp_decode_response() in subsys/mgmt/osdp/src/osdp_cp.c decodes replies from a Peripheral Device into a stack-allocated struct osdp_event. For the REPLY_KEYPPAD and REPLY_RAW reply types, the payload length is taken from the received frame and the only validation performed is that the declared length is self-consistent with the number of payload bytes present in the frame. Because the attacker controls both the length field and the frame length, that check imposes no bound, and the subsequent memcpy() writes into the fixed 64-byte data arrays of struct osdp_event_keypress / struct osdp_event_cardread (OSDP_EVENT_MAX_DATALEN). The sibling REPLY_FMT handler in the same switch already carried the missing > OSDP_EVENT_MAX_DATALEN bound. The defect is reached from cp_process_reply(), which reads bytes from the OSDP RS-485 channel and passes them through osdp_phy_check_packet() and osdp_phy_decode_packet() before dispatching on the reply ID. Triggering it requires CONFIG_OSDP with CONFIG_OSDP_MODE_CP and an application event callback registered (the normal Control Panel integration), plus a frame carrying a correct SOM, a valid CRC-16, and a matching 2-bit sequence number — all of which are computable or observable by anyone on the bus. No check ties the reply ID to the outstanding command, so an oversized REPLY_KEYPPAD or REPLY_RAW is accepted as the answer to a routine CMD_POLL. A malicious or compromised card reader, or anyone with access to the RS-485 wiring, can supply such a frame; CONFIG_OSDP_SC_ENABLED only helps while a secure channel is active, and a single unauthenticated frame carrying a bad MAC causes sc_deactivate(), after which plaintext replies are again accepted. With the default CONFIG_OSDP_UART_BUFFER_LENGTH of 256, roughly 180 bytes of fully attacker-chosen data can be written past the end of the stack-allocated event object, over saved registers and the return address on typical Cortex-M and RISC-V frame layouts (Zephyr does not enable stack canaries by default). The impact ranges from a hard crash of the access-control panel to potential control-flow hijack in the context of the OSDP receive thread. The fix adds an OSDP_EVENT_MAX_DATALEN bound to both handlers, capping each memcpy() at the size of its destination.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
跨界内存写
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
zephyrproject zephyr 3.3.0 ~ 4.4.2 -

II. Public POCs for CVE-2026-76788

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-76788

请登录查看更多情报信息。

Other References for CVE-2026-76788 (2)

Same Patch Batch · zephyrproject · 2026-10-19 · 4 CVEs total

CVE-2026-19595 6.1 MEDIUM Zephyr RTIO syscall verifier validates output parameters for read instead of write access
CVE-2026-76787 5.9 MEDIUM NULL pointer dereference in the UpdateHub FOTA client when probe metadata omits sha256sum
CVE-2026-77684 5.7 MEDIUM Bluetooth Classic HFP Hands-Free: TX buffer leak on RFCOMM disconnect leads to permanent B

IV. Related Vulnerabilities

V. Comments for CVE-2026-76788

No comments yet


Leave a comment