CVE-2026-72121

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

HIGH
8.8
CVSS Score
Published: August 15, 2026 at 05:52 AM UTC
Updated: October 16, 2026 at 07:17 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH8.8
Exploit prediction
EPSS 0.4%
SSVC
No known exploit

Description

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 bcm_rx_setup() when updating timer and filter content while bcm_rx_handler(), bcm_rx_timeout_handler() or bcm_rx_thr_handler() run concurrently on incoming CAN traffic. Protect the timer (ival1/ival2/kt_ival1/kt_ival2/kt_lastmsg) and filter (nframes/flags/frames/last_frames) updates in bcm_rx_setup() with a new per-op bcm_rx_update_lock, taken with the matching scope in the RX handlers. memcpy_from_msg() is staged into a temporary buffer before the lock is taken, since it can sleep and must not run under a spinlock. hrtimer_cancel() is always called without bcm_rx_update_lock held, since bcm_rx_timeout_handler()/bcm_rx_thr_handler() take the same lock and a running callback would otherwise deadlock against the canceller. Also close a related race: bcm_rx_setup() cleared the RTR flag in the stored reply frame's can_id as a separate, unprotected step after the frame content was already installed, so a concurrent bcm_rx_handler() could transmit a stale reply with CAN_RTR_FLAG 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. bcm_rx_handler()'s RX_RTR_FRAME check now takes a lock-protected snapshot of op->flags before deciding whether to call bcm_can_tx(), but does not hold the lock across that call. Also take a lock-protected snapshot of the currframe in bcm_can_tx() to avoid partly overwrites by content updates in bcm_tx_setup(). Finally check if a TX_RESET_MULTI_IDX/SETTIMER might have reset op->currframe between the two locked sections in bcm_can_tx(). Omit calling hrtimer_forward() with zero interval in bcm_rx_thr_handler(). kt_ival2 may have been concurrently cleared by bcm_rx_setup() before it cancels this timer, so check kt_ival2 inside the bcm_rx_update_lock.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

2a437b86ac5a9893c902f30ef66815bf13587bf65.10.2385.15.1855.4.2946.1.1416.12.316.14.96.156.6.937595de7bc56e0e52b74e56c90f7e247bf626d62876c84c3728178b2d38d5604e399dfe8b0752645e8f1c022541bf5a923c8d6fa483112c15250f30a4c2aba69d0c36a496ab4f2e81e9c2b271f2693fd7c4e8a172501e677ebd8ea9d9161d97dc4df56fbdcc55dd28c20a6611e30596019b3b2f636819a4c0fbd8fdc2b218e979cfe422b139b8f74c12419d1f
Vendor states this is fixed in 19b1994069dd29478ba767de1f98f14a088198dc (fixed)
Vendor states this is fixed in 749179c2e25b95d22499ed29096b3e02d6dfd2b4 (fixed)
Vendor states this is fixed in 834cbca3b12e46887f7a9b35f1981a888360ea4c (fixed)
Vendor states this is fixed in 96994180bd7b248b0cc698afe926e23fc1bda59b (fixed)
Vendor states this is fixed in a7c369e7da8203e2b5be12bbcac7b9ab2ed5b658 (fixed)
Vendor states this is fixed in a7eb6db1cd3f7b556a301dc1265945ad112089f7 (fixed)
Vendor states this is fixed in caa8704a7f3cb7806331596195385437126ecb3a (fixed)
Vendor states this is fixed in fc9f5ee1b073bd233d9c604e338af4ebb42cbc33 (fixed)
Vendor states this is fixed in 5.10.265 (unaffected)
Vendor states this is fixed in 5.15.216 (unaffected)
Affected range stops below 5.5, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 6.1.183 (unaffected)
Vendor states this is fixed in 6.12.101 (unaffected)
Vendor states this is fixed in 6.15 (unaffected)
Vendor states this is fixed in 6.18.42 (unaffected)
Vendor states this is fixed in 6.6.148 (unaffected)
Vendor states this is fixed in 7.1.5 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

SSVC — Action Prioritization

SSVCNo known exploitNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

8.8HIGHLinux
Vector?

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card