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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-78116— Double free of an RTIO submission in the Broadcom AFBR-S50 sensor driver data-evaluation error path

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.

Broadcom AFBR-S50 飞行时间(ToF)传感器驱动在传感器数据评估失败时,会对同一 RTIO 提交执行两次完成操作。在 函数中(位于 ),当 返回非 状态时,会调用 ,该函数通过 完成请求;然而,执行流程随后继续向下,在函数末尾再次对同一个 调用 进行完成操作。与同一函数中的其他错误分支不同,该分支未执行返回语句。 这两个完成辅助函数最终都会调用 中的 ,该函数通过 将提交对象归还至对象池;对于流式(多拍)提交,还会通过 释放接收缓冲区。因此,第二次完成操作会读取已被释放的 ,将同一个多生产者 - 单

CVSS 5.2 · Medium EPSS 0.17% · P6

Possible ATT&CK Techniques 1 AI

T1190 · Exploit Public-Facing Application

Affected Version Matrix 1

VendorProduct Version RangeStatus
zephyrproject zephyr 4.3.0< 4.5.0 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-78116

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
Double free of an RTIO submission in the Broadcom AFBR-S50 sensor driver data-evaluation error path
Source: CVE Program / CVE List V5
Vulnerability Description
The Broadcom AFBR-S50 time-of-flight sensor driver double-completes an RTIO submission when sensor data evaluation fails. In data_ready_work_handler() (drivers/sensor/broadcom/afbr_s50/afbr_s50.c), a non-STATUS_OK return from Argus_EvaluateData() calls handle_error_on_result(), which finalises the request with rtio_iodev_sqe_err(), but execution then fell through to the tail of the function and finalised the very same struct rtio_iodev_sqe a second time with rtio_iodev_sqe_ok(). Unlike the other error branches in the same function, this one did not return. Both completion helpers reach rtio_executor_done() in subsys/rtio/rtio_executor.c, which returns the submission to the pool via rtio_sqe_pool_free() and, for streaming (multishot) submissions, also releases the RX buffer with rtio_release_buffer(). The second completion therefore reads a freed rtio_iodev_sqe, pushes the same mpsc node onto the submission queue while it is already on the pool free list — splicing the two lists together — and re-submits the freed request so the next measurement is written through an already-released buffer. For one-shot submissions it emits a spurious success completion carrying stale userdata and frees the same pool entry twice. The failure branch is driven by sensor conditions rather than by host software. The vendor API documents statuses such as ERROR_ARGUS_BIAS_VOLTAGE_REINIT and ERROR_ARGUS_LASER_MONITOR_INACTIVE as transient results of harsh ambient light, so a party in front of the optical sensor can provoke the invalid-data condition without any physical contact with the board or any software access; SPI transfer errors reach the same branch. In releases before the payload.Status check was dropped, ordinary sharp distance transitions in the sensor's field of view were sufficient. Impact is corruption of the RTIO submission pool and mempool bookkeeping: aliased submissions, writes through released buffers, and duplicate completions delivered to the application. The attacker does not control the corrupted content, so the practical consequence is memory corruption and loss of availability on devices that instantiate brcm,afbr-s50, rather than directed code execution. Only builds that enable this driver are affected.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:L/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 4.3.0 ~ 4.5.0 -

II. Public POCs for CVE-2026-78116

# 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-78116

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

Patches & Fixes for CVE-2026-78116 (1)

Vendor Advisories for CVE-2026-78116 (1)

Same Patch Batch · zephyrproject · 2026-10-21 · 8 CVEs total

CVE-2026-19676 7.8 HIGH PECI transfer syscall verifier does not validate embedded user buffer pointers, allowing a
CVE-2026-79976 7.1 HIGH NULL pointer dereference in the MCTP I2C+GPIO target binding triggerable by a peer I2C con
CVE-2026-78118 7.0 HIGH Race condition on kernel wait queues: unlocked z_waitq_head() read in the timer expiration
CVE-2026-78119 6.3 MEDIUM Out-of-bounds write in the Nuvoton NPCX eSPI Target-Attached-Flash receive path from an un
CVE-2026-19947 5.3 MEDIUM Missing kernel object permission check in devmux syscalls allows unprivileged user threads
CVE-2026-78117 4.2 MEDIUM Race condition on shared HCI TX descriptor in the Infineon PSOC 6 BLESS Bluetooth driver c
CVE-2026-18748 3.5 LOW Out-of-bounds read in Bluetooth Classic A2DP codec information element handling

IV. Related Vulnerabilities

V. Comments for CVE-2026-78116

No comments yet


Leave a comment