Skip to main content

Linux Kernel CVE-2026-72154

| EUVDEUVD-2026-58912 HIGH
2026-08-15 416baaa9-dc9f-4396-8d5f-8c081fb06d67 GHSA-w2g7-86j7-x792
7.8
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

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

AC:H reflects the specific requirement for SMP OpenRISC hardware, a non-default rare condition not captured by the NVD-assigned AC:L; all other metrics align with provided vector.

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

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

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

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

Lifecycle Timeline

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

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

openrisc: Fix jump_label smp syncing

The original commit 8c30b0018f9d ("openrisc: Add jump label support") copies from arm64 and does not properly consider how icache invalidation on remote cores works in OpenRISC. On OpenRISC remote icaches need to be invalidated otherwise static key's may remain state after updating.

Fix SMP cache syncing by:

  1. Properly invalidate remote core icaches on SMP systems by using

icache_all_inv. The old code uses kick_all_cpus_sync() which runs a no-op IPI function call on remote CPU's which does execute a lot of code and flushes many cache lines in the process, but does not flush all and it's not correct on OpenRISC.

  1. For architectures that do not have WRITETHROUGH caches be sure

to flush the dcache after patching.

To test this I first reproduced the issue using a custom test module [0]. The test confirmed that some icache lines maintained stale static_key code sequences after calling static_branch_enable(). After this patch there are no longer jump_label coherency issues.

[0] https://github.com/stffrdhrn/or1k-utils/tree/master/tests/smp_static_key_test

AnalysisAI

Cache coherency corruption in the Linux kernel's OpenRISC architecture jump_label implementation leaves instruction cache lines on remote SMP cores stale after static key updates, meaning security-relevant kernel branches may execute the wrong code path indefinitely on affected multi-core OpenRISC systems. The flaw originates in commit 8c30b0018f9d, which ported jump_label support from arm64 without adapting icache invalidation to OpenRISC's SMP model - kick_all_cpus_sync() does not guarantee a full remote icache flush on this architecture. No public exploit has been identified at time of analysis, and the 0.21% EPSS score (11th percentile) reflects the severe rarity of OpenRISC SMP hardware in production.

Technical ContextAI

OpenRISC is an open-source RISC processor architecture with upstream Linux kernel support. The jump_label subsystem enables efficient static key patching by rewriting branch instructions in the kernel text segment at runtime, avoiding the overhead of a runtime conditional check. On SMP systems, after the kernel patches binary text on one core, all remote cores must explicitly invalidate their instruction caches (icaches) to ensure they fetch the updated instructions rather than stale cached copies. The original OpenRISC implementation (commit 8c30b0018f9d) was adapted from arm64 and used kick_all_cpus_sync(), which sends an inter-processor interrupt (IPI) whose callback is a no-op on remote cores. While executing the IPI handler does incidentally evict some cache lines, it does not guarantee a complete icache flush and is architecturally incorrect for OpenRISC. A secondary issue affects architectures without WRITETHROUGH data caches: without an explicit dcache flush after patching, the updated bytes may not be visible to the icache at all. No CWE was assigned by NVD; the root cause maps conceptually to improper cache coherency management in a multi-core context (related to CWE-1232).

RemediationAI

The primary fix is to upgrade the Linux kernel to version 6.18.40, 7.1.5, or 7.2-rc1 or later, which replaces kick_all_cpus_sync() with icache_all_inv for correct remote icache invalidation on OpenRISC SMP systems and adds an explicit dcache flush after code patching. Fix commits are available at https://git.kernel.org/stable/c/3fac46068fe4cea22ed373432b9173a915e8e60d, https://git.kernel.org/stable/c/aca063c9024522e4e5b9a9d1927433f6a01785a3, and https://git.kernel.org/stable/c/57740658042daf591c57d6e700d9a304d5972552. For systems that cannot be patched immediately, a compensating control is to boot the OpenRISC kernel in single-core (non-SMP) mode using maxcpus=1, which eliminates the remote icache invalidation requirement entirely at the cost of forgoing multi-core performance. Disabling CONFIG_JUMP_LABEL at build time is a more invasive alternative that removes the patching mechanism but may increase kernel overhead. No workaround fully addresses the issue on running SMP systems without a kernel rebuild or upgrade.

Vendor StatusVendor

SUSE

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

Share

CVE-2026-72154 vulnerability details – vuln.today

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