U.S. flag   An official website of the United States government
Dot gov

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Https

Secure .gov websites use HTTPS
A lock (Dot gov) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.

Vulnerability Change Records for CVE-2026-72121

Change History

New CVE Received from kernel.org 8/15/2026 2:21:26 AM

Action Type Old Value New Value
Added 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.
Added Reference

                  
                
              
https://git.kernel.org/stable/c/19b1994069dd29478ba767de1f98f14a088198dc
Added Reference

                  
                
              
https://git.kernel.org/stable/c/749179c2e25b95d22499ed29096b3e02d6dfd2b4
Added Reference

                  
                
              
https://git.kernel.org/stable/c/834cbca3b12e46887f7a9b35f1981a888360ea4c
Added Reference

                  
                
              
https://git.kernel.org/stable/c/a7eb6db1cd3f7b556a301dc1265945ad112089f7
Added Reference

                  
                
              
https://git.kernel.org/stable/c/fc9f5ee1b073bd233d9c604e338af4ebb42cbc33
Added Affected

                  
                
              
[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","programFiles":["net/can/bcm.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","versions":[{"version":"76c84c3728178b2d38d5604e399dfe8b0752645e","lessThan":"a7eb6db1cd3f7b556a301dc1265945ad112089f7","versionType":"git","status":"affected"},{"version":"cc55dd28c20a6611e30596019b3b2f636819a4c0","lessThan":"834cbca3b12e46887f7a9b35f1981a888360ea4c","versionType":"git","status":"affected"},{"version":"c2aba69d0c36a496ab4f2e81e9c2b271f2693fd7","lessThan":"19b1994069dd29478ba767de1f98f14a088198dc","versionType":"git","status":"affected"},{"version":"c2aba69d0c36a496ab4f2e81e9c2b271f2693fd7","lessThan":"fc9f5ee1b073bd233d9c604e338af4ebb42cbc33","versionType":"git","status":"affected"},{"version":"c2aba69d0c36a496ab4f2e81e9c2b271f2693fd7","lessThan":"749179c2e25b95d22499ed29096b3e02d6dfd2b4","versionType":"git","status":"affected"},{"version":"8f1c022541bf5a923c8d6fa483112c15250f30a4","versionType":"git","status":"affected"},{"version":"7595de7bc56e0e52b74e56c90f7e247bf626d628","versionType":"git","status":"affected"},{"version":"fbd8fdc2b218e979cfe422b139b8f74c12419d1f","versionType":"git","status":"affected"},{"version":"2a437b86ac5a9893c902f30ef66815bf13587bf6","versionType":"git","status":"affected"},{"version":"c4e8a172501e677ebd8ea9d9161d97dc4df56fbd","versionType":"git","status":"affected"},{"version":"6.6.93","lessThan":"6.6.148","versionType":"semver","status":"affected"},{"version":"6.12.31","lessThan":"6.12.101","versionType":"semver","status":"affected"},{"version":"5.4.294","lessThan":"5.5","versionType":"semver","status":"affected"},{"version":"5.10.238","lessThan":"5.11","versionType":"semver","status":"affected"},{"version":"5.15.185","lessThan":"5.16","versionType":"semver","status":"affected"},{"version":"6.1.141","lessThan":"6.2","versionType":"semver","status":"affected"},{"version":"6.14.9","lessThan":"6.15","versionType":"semver","status":"affected"}]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","programFiles":["net/can/bcm.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","versions":[{"version":"6.15","status":"affected"},{"version":"0","lessThan":"6.15","versionType":"semver","status":"unaffected"},{"version":"6.6.148","lessThanOrEqual":"6.6.*","versionType":"semver","status":"unaffected"},{"version":"6.12.101","lessThanOrEqual":"6.12.*","versionType":"semver","status":"unaffected"},{"version":"6.18.42","lessThanOrEqual":"6.18.*","versionType":"semver","status":"unaffected"},{"version":"7.1.5","lessThanOrEqual":"7.1.*","versionType":"semver","status":"unaffected"},{"version":"7.2-rc4","lessThanOrEqual":"*","versionType":"original_commit_for_fix","status":"unaffected"}]}]