Skip to main content

Linux Kernel CVE-2026-72121

| EUVDEUVD-2026-58879 HIGH
2026-08-15 416baaa9-dc9f-4396-8d5f-8c081fb06d67 GHSA-85wx-h4w2-c465
8.8
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY
8.8 HIGH
AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.5 HIGH

Race condition requires precise timing between concurrent processes (AC:H); CAN bus physical adjacency required (AV:A); incoming frames require no authentication (PR:N); full kernel impact scope justified by memory corruption potential.

3.1 AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:A/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
4.7 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat
5.5 MEDIUM
qualitative

Primary rating from Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67).

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Adjacent
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 07:01 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
8.8 (HIGH)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 06:21 cve.org
HIGH 8.8
CVE Published
Aug 15, 2026 - 06:21 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

AnalysisAI

Race conditions in the Linux kernel CAN Broadcast Manager (BCM) subsystem allow adjacent attackers on the CAN bus to corrupt kernel timer and filter state in bcm_rx_setup() by racing concurrent frame-reception handlers, with theoretical impact spanning kernel memory disclosure, corruption, and denial of service. KCSAN-detected simultaneous accesses affect all Linux kernel stable branches from 5.4 through 6.15, spanning automotive, industrial, and embedded deployments that rely on CAN BCM sockets. No public exploit has been identified and EPSS sits at 0.21% (11th percentile), indicating very low near-term exploitation probability despite the 8.8 CVSS score; vendor-released patches are available across multiple stable branches.

Technical ContextAI

The vulnerability resides in net/can/bcm.c within the Linux kernel's CAN Broadcast Manager implementation, which provides message scheduling and filtering over POSIX sockets. The root cause is a classic race condition (CWE-362, though listed N/A by NVD) arising from the absence of synchronization around bcm_rx_setup()'s updates to per-operation timer fields (ival1, ival2, kt_ival1, kt_ival2, kt_lastmsg) and filter fields (nframes, flags, frames, last_frames), all of which are concurrently read by the interrupt-driven handlers bcm_rx_handler(), bcm_rx_timeout_handler(), and bcm_rx_thr_handler(). A secondary race allows bcm_rx_handler() to transmit a reply with CAN_RTR_FLAG still set after bcm_rx_setup() has written the frame content but before it clears the flag, producing a stale and semantically inconsistent CAN frame. A third race in bcm_can_tx() can produce a partial currframe overwrite. The fix introduces a per-operation spinlock (bcm_rx_update_lock), stages memcpy_from_msg() into a temporary buffer before locking (since it can sleep), restructures hrtimer_cancel() calls to avoid deadlock, and normalizes RTR flag handling atomically in staged buffers. Affected kernel stable version ranges are confirmed via EUVD-2026-58879 and corroborated by five git.kernel.org stable-tree commits.

RemediationAI

Update to a patched Linux kernel stable release: 6.6.148 or later for the 6.6 series, 6.12.101 or later for the 6.12 series, 7.1.5 or later for 7.x, or 7.2-rc4 for mainline, per EUVD-2026-58879. Patch commits are available at https://git.kernel.org/stable/c/19b1994069dd29478ba767de1f98f14a088198dc, https://git.kernel.org/stable/c/749179c2e25b95d22499ed29096b3e02d6dfd2b4, https://git.kernel.org/stable/c/834cbca3b12e46887f7a9b35f1981a888360ea4c, https://git.kernel.org/stable/c/a7eb6db1cd3f7b556a301dc1265945ad112089f7, and https://git.kernel.org/stable/c/fc9f5ee1b073bd233d9c604e338af4ebb42cbc33. If kernel upgrade is not immediately feasible in embedded or automotive environments, a targeted compensating control is to disable CAN BCM socket support at build time (CONFIG_CAN_BCM=n); this eliminates the vulnerable code path entirely but breaks any application using BCM-based message scheduling and filtering, requiring application-level impact assessment before deployment. Restricting physical access to the CAN bus (network segmentation, gateway firewalling) reduces the adjacent-attack-vector exposure and should be implemented regardless of patch status in high-assurance environments. Kernel upgrades in real-time embedded or automotive contexts require regression testing of timing-sensitive CAN behaviors.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-72121 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy