CVE-2026-72121: can: bcm: add locking when updating filter and timer values

Published Aug 15, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

can: bcm: add locking when updating filter and timer values

KCSAN detected a simultaneous access to timer values that can be overwritten in bcmrxsetup() when updating timer and filter content while bcmrxhandler(), bcmrxtimeouthandler() or bcmrxthrhandler() run concurrently on incoming CAN traffic.

Protect the timer (ival1/ival2/ktival1/ktival2/ktlastmsg) and filter (nframes/flags/frames/lastframes) updates in bcmrxsetup() with a new per-op bcmrxupdatelock, taken with the matching scope in the RX handlers. memcpyfrommsg() is staged into a temporary buffer before the lock is taken, since it can sleep and must not run under a spinlock.

hrtimercancel() is always called without bcmrxupdatelock held, since bcmrxtimeouthandler()/bcmrxthrhandler() take the same lock and a running callback would otherwise deadlock against the canceller.

Also close a related race: bcmrxsetup() cleared the RTR flag in the stored reply frame's canid as a separate, unprotected step after the frame content was already installed, so a concurrent bcmrxhandler() could transmit a stale reply with CANRTRFLAG still set. Fold that normalization into the initial frame preparation instead (on the staged buffer for updates, directly on op->frames pre-registration for new ops), so the installed frame is always atomically self-consistent.

bcmrxhandler()'s RXRTRFRAME check now takes a lock-protected snapshot of op->flags before deciding whether to call bcmcantx(), but does not hold the lock across that call.

Also take a lock-protected snapshot of the currframe in bcmcantx() to avoid partly overwrites by content updates in bcmtxsetup(). Finally check if a TXRESETMULTIIDX/SETTIMER might have reset op->currframe between the two locked sections in bcmcantx().

Omit calling hrtimerforward() with zero interval in bcmrxthrhandler(). ktival2 may have been concurrently cleared by bcmrxsetup() before it cancels this timer, so check ktival2 inside the bcmrxupdatelock.

Affected Software

1 affected component
Linux Kernel

Event History

Aug 15, 2026
CVE Published
via MITRE·05:52 AM
Data Sourced
via MITRE·05:52 AM
Description
Data Sourced
via NVD·06:21 AM
Description
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-72121?

CVE-2026-72121 has a risk rating of 37.

2

How do I fix CVE-2026-72121?

To fix CVE-2026-72121, ensure that you update to the latest patched version of the Linux kernel.

3

What does CVE-2026-72121 affect?

CVE-2026-72121 affects the Linux kernel, specifically the handling of CAN filters and timers.

4

What are the consequences of CVE-2026-72121?

CVE-2026-72121 can lead to simultaneous access issues which may cause unpredictable behavior in the CAN protocol handling.

5

When was CVE-2026-72121 published?

CVE-2026-72121 was published on August 15, 2026.

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