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

Published Oct 21, 2026
·
Updated

The Broadcom AFBR-S50 time-of-flight sensor driver double-completes an RTIO submission when sensor data evaluation fails. In datareadyworkhandler() (drivers/sensor/broadcom/afbrs50/afbrs50.c), a non-STATUSOK return from ArgusEvaluateData() calls handleerroronresult(), which finalises the request with rtioiodevsqeerr(), but execution then fell through to the tail of the function and finalised the very same struct rtioiodevsqe a second time with rtioiodevsqeok(). Unlike the other error branches in the same function, this one did not return.

Both completion helpers reach rtioexecutordone() in subsys/rtio/rtioexecutor.c, which returns the submission to the pool via rtiosqepoolfree() and, for streaming (multishot) submissions, also releases the RX buffer with rtioreleasebuffer(). The second completion therefore reads a freed rtioiodevsqe, 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 ERRORARGUSBIASVOLTAGEREINIT and ERRORARGUSLASERMONITORINACTIVE 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.

Affected Software

1 affected component
Broadcom AFBR-S50 sensor driver

Event History

Oct 21, 2026
CVE Published
via MITRE·06:19 PM
Data Sourced
via MITRE·06:19 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

What condition is required to trigger the fault?

An RTIO submission must reach the AFBR-S50 driver's data-evaluation path and Argus_EvaluateData() must return a value other than STATUS_OK. That error path completes the same request twice.

2

Which deployments are exposed?

Deployments using the Broadcom AFBR-S50 sensor driver with RTIO submissions are affected when the specified data-evaluation error occurs. The provided data does not identify affected versions or configuration prerequisites beyond this execution path.

3

How can the impact differ between one-shot and streaming submissions?

For streaming (multishot) submissions, the second completion can re-submit a freed request and cause a later measurement to be written through an already-released RX buffer. For one-shot submissions, it can produce a spurious successful completion with stale userdata.

4

What runtime behavior can indicate that the issue has occurred?

Potential indicators include an unexpected success completion carrying stale userdata for a one-shot request, or subsequent streaming measurements using an already-released buffer. The underlying failure can also splice the RTIO submission queue and pool free list together.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203