8.8
HIGH CVSS 3.1
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
Affected Products

The following products are affected by CVE-2026-72121 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Linux linux_kernel
CVSS Scores
The Common Vulnerability Scoring System is a standardized framework for assessing the severity of vulnerabilities in software and systems. We collect and displays CVSS scores from various sources for each CVE.
Score Version Severity Vector Exploitability Score Impact Score Source
CVSS 3.1 HIGH 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Solution
Apply kernel updates to prevent concurrent access and data corruption issues.
  • 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.
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
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.