CVE-2026-72121
can: bcm: add locking when updating filter and timer values
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.
INFO
Published Date :
Aug. 15, 2026, 6:21 a.m.
Last Modified :
Aug. 17, 2026, 6:18 a.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Update the Linux kernel to the latest version.
- Apply the provided patch set for the bcm module.
- Ensure timers and filter updates are properly synchronized.
- Review concurrent access controls for critical data.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-72121.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-72121 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-72121
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-72121 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-72121 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 17, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', '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'}], 'programFiles': ['net/can/bcm.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6.15'}, {'status': 'unaffected', 'version': '0', 'lessThan': '6.15', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.6.148', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.101', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.42', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc4', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['net/can/bcm.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', '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'}], 'programFiles': ['net/can/bcm.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6.15'}, {'status': 'unaffected', 'version': '0', 'lessThan': '6.15', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.6.148', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.101', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.42', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['net/can/bcm.c'], 'defaultStatus': 'affected'}] -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 15, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', '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'}], 'programFiles': ['net/can/bcm.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6.15'}, {'status': 'unaffected', 'version': '0', 'lessThan': '6.15', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.6.148', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.101', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.42', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc4', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['net/can/bcm.c'], 'defaultStatus': 'affected'}] 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