Skip to main content

Linux Kernel CVE-2026-93138

| EUVDEUVD-2026-82246 HIGH
2026-09-17 Linux GHSA-j9m2-mp7m-3w46
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local access with CAP_BPF on weak-memory-order arch
  2. Delivery
    Load BPF program triggering first vmlinux BTF parse
  3. Exploit
    Race concurrent verifier fast-path caller
  4. Execution
    Observe pointer before contents visible
  5. Persist
    Use half-initialized BTF/globals
  6. Impact
    Kernel crash or undefined behavior (DoS)

Vulnerability Assessment

Exploitation Conditions

Requires local privileged ability to load BPF programs (CAP_BPF or CAP_SYS_ADMIN) to invoke bpf_get_btf_vmlinux(). Exploitation is further gated to weakly ordered architectures (arm64, PowerPC, RISC-V) - on strongly ordered x86 the missing barrier is effectively benign. It only triggers during the one-time lazy first parse of vmlinux BTF, requiring a concurrent second caller to win a narrow ordering window where it observes the published btf pointer before btf_parse_vmlinux()'s stores (struct contents and external globals such as bpf_ctx_convert.t) become visible. These factors (privilege requirement, arch dependence, first-parse-only timing race) sharply limit realistic exploitability despite the local attack vector.

Impact

Real-world risk is LOW despite the vendor CVSS of 7.8 (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H). This is a memory-ordering (missing-barrier) fix in the BPF subsystem, not an attacker-driven memory-safety primitive. The description itself hedges with 'could in principle observe' - the bug is a theoretical data race that only manifests on weakly ordered architectures (arm64, ppc, riscv), only on the very first-time lazy parse of vmlinux BTF, and only if a concurrent caller wins a narrow ordering window. That is far from the AC:L the vendor assigned; realistic complexity is HIGH. There is no EPSS score, no CISA KEV listing, and no public PoC, all consistent with a low-priority hardening fix rather than an exploited weakness. The vendor's C:H/I:H/A:H is not justified by the described effect (observing a half-initialized BTF pointer/globals), which at worst yields an uninitialized-memory read or crash - a DoS/undefined-behavior outcome, not high confidentiality/integrity impact. Note the CVSS vector is local (AV:L) and requires privileges (PR:L), which aligns with the real prerequisite of being able to load a BPF program (CAP_BPF/CAP_SYS_ADMIN); the 'Information Disclosure' tag overstates and mislabels the actual DoS/uninitialized-use nature. My assessed severity is ~3.0-4.0.

Exploit ScenarioDerived

On a weakly ordered CPU (e.g. arm64), a local user with CAP_BPF loads a BPF program that triggers the first-ever lazy parse of vmlinux BTF while a second thread simultaneously calls into the verifier's fast path. The racing thread observes the published btf pointer before the parsed struct contents and associated globals (e.g. bpf_ctx_convert.t) are visible, leading to use of half-initialized state and a potential crash or undefined behavior. No public exploit code exists and the window is a one-time first-parse race, making practical exploitation very difficult.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 18, 2026

Memory-ordering race in the Linux kernel BPF verifier (bpf_get_btf_vmlinux) lets a local attacker holding CAP_BPF or CAP_SYS_ADMIN potentially consume a partially initialized vmlinux BTF object, because the store that publishes the parsed pointer and the lockless fast-path load that reads it are not ordered. Exploitation is constrained to weakly ordered CPUs (arm64, PowerPC, RISC-V) and to the one-time lazy first-parse window, where a concurrent second caller must win a narrow race before btf_parse_vmlinux()'s stores to the struct and to external globals such as bpf_ctx_convert.t become visible; on strongly ordered x86 the missing barrier is effectively benign. The vendor scores this 7.8 (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H), but our independent assessment rates real-world risk LOW (CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L) given the privilege requirement, architecture dependence and first-parse-only timing window, and no public exploit has been identified at time of analysis.

RemediationAI

Apply the upstream fix by upgrading to the patched release for your branch: Linux 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.52 or 7.2.6 (7.3-rc1 on mainline). The corresponding stable backports are f32a4a40bc635be25d6816da4bd91e9e58c31bf3, a7fe72d780122eb934536f1719abad445f6afdf7, e18a10b39c994f04e1ebd7f8fc042bb1ca8ad053, 978524ecfc1c539282df5858de1eec20748c6f74, eaf302628a78806f66d8224d6ba03fb4d5025de4, 2892f3f44bf865c8fb6b6c0960edec4cc91806ee, 86d11c594d60b255b526fa5260f669463fb1a063 and 92863e678070f57c17c868e4bfa2441a5c61ad2b, all reachable via the git.kernel.org stable links in the references. If immediate patching is not possible, the practical compensating control is to restrict who can load BPF programs, since exploitation requires CAP_BPF or CAP_SYS_ADMIN on a weakly ordered host: drop CAP_BPF/CAP_SYS_ADMIN from untrusted local users and containers and disable unprivileged BPF entirely (kernel.unprivileged_bpf_disabled=1) - the trade-off is that this breaks legitimate eBPF observability, tracing, Cilium-style networking and XDP tooling for those users, and it does not provide any protection against an already privileged local attacker. There is no supported knob to disable only the lazy vmlinux BTF initialization path, and hosts running x86 are effectively unaffected by the missing barrier, so no kernel-level workaround is needed there. Additional detail is available from the NVD entry for CVE-2026-93138 and the vendor stable commits listed above.

Affected VersionsENISA

Linux patch: 6.18.52
Linux 8580ac9404f6240668a026785d7d8856f0530409 <f32a4a40bc635be25d6816da4bd91e9e58c31bf3
Linux 8580ac9404f6240668a026785d7d8856f0530409 <86d11c594d60b255b526fa5260f669463fb1a063
Linux 8580ac9404f6240668a026785d7d8856f0530409 <2892f3f44bf865c8fb6b6c0960edec4cc91806ee
Linux 8580ac9404f6240668a026785d7d8856f0530409 <92863e678070f57c17c868e4bfa2441a5c61ad2b
Linux 8580ac9404f6240668a026785d7d8856f0530409 <978524ecfc1c539282df5858de1eec20748c6f74
Linux patch: 0
Linux patch: 6.1.188
Linux 8580ac9404f6240668a026785d7d8856f0530409 <e18a10b39c994f04e1ebd7f8fc042bb1ca8ad053
Linux 5.5
Linux 8580ac9404f6240668a026785d7d8856f0530409 <eaf302628a78806f66d8224d6ba03fb4d5025de4
Linux patch: 5.10.270
Linux patch: 6.12.110
Linux 8580ac9404f6240668a026785d7d8856f0530409 <a7fe72d780122eb934536f1719abad445f6afdf7
Linux patch: 7.3-rc1
Linux patch: 7.2.6
Linux patch: 5.15.221
Linux patch: 6.6.157

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a concurrency/memory-ordering defect (no CWE was assigned by the vendor; the class corresponds to a race condition during lazy initialization, in the family of CWE-362/CWE-665) in the BPF subsystem's handling of vmlinux BTF. BTF (BPF Type Format) is the kernel's compact type metadata, and btf_parse_vmlinux() builds the vmlinux BTF object under bpf_verifier_lock when the first BPF caller requests it via bpf_get_btf_vmlinux(). The function parsed the object under the mutex but published the resulting pointer with a plain store, then served later callers with a plain lockless load on the fast path - with no ordering between the stores that initialize the struct btf (and the external globals btf_parse_vmlinux() also fills in, e.g. bpf_ctx_convert.t) and the store that exposes the pointer. A mutex_unlock() only synchronizes with a subsequent acquisition of the same lock, so it does nothing for the lockless reader; on a weakly ordered architecture that reader can in principle observe the pointer before the parsed contents are visible. The fix converts the publication to smp_store_release() and the fast-path read to smp_load_acquire(); acquire semantics rather than a dependency-ordered READ_ONCE() are required precisely because btf_parse_vmlinux() populates globals outside the returned object, and an address dependency would only order accesses made through the pointer. Affected products per CPE: cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* (all tracked Linux kernel releases containing the vulnerable code).

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 2.5 LOW

Local CAP_BPF (PR:L) plus a first-parse-only race on weak-memory arches makes AC:H; effect is at worst a crash/uninitialized use, so C:N/I:N with only A:L.

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

4
CVSS changed
Sep 18, 2026 - 18:22 NVD
7.8 (HIGH)
Patch available
Sep 17, 2026 - 17:19 EUVD
CVE Published
Sep 17, 2026 - 16:11 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 17, 2026 - 16:11 cve.org
HIGH 7.8

DescriptionCVE.org

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

bpf: Fix vmlinux BTF prep race in bpf_get_btf_vmlinux

bpf_get_btf_vmlinux() lazily parses the vmlinux BTF under the bpf_verifier_lock, but publishes the result through a plain store and re-checks it through a plain lockless load. Nothing orders the stores initializing the struct btf inside btf_parse_vmlinux() against the store publishing the pointer: On a weakly ordered arch, a concurrent first-time caller taking the lockless fast path could in principle observe the pointer before the parsed contents are visible. The mutex_unlock() does not help such a reader given it only synchronizes with a later acquisition of the same lock. Thus, publish the pointer with smp_store_release() and read it on the fast path with smp_load_acquire().

Acquire semantics are needed rather than a dependency-ordered READ_ONCE(): btf_parse_vmlinux() also populates globals outside the returned object (e.g. bpf_ctx_convert.t). An address dependency would only order accesses performed through the pointer and not cover other globals.

Executive ViewAI

Why It Matters

A high-severity memory-ordering race in the Linux kernel BPF verifier (CVE-2026-93138) affects local authenticated users with CAP_BPF or CAP_SYS_ADMIN on weakly ordered CPUs such as arm64, PowerPC, and RISC-V, and no public exploit identified at time of analysis. Exploitation is constrained to a one-time first-parse window and does not affect strongly ordered x86 in practice, so the real-world business risk is low despite the vendor's 7.8 score. Leadership should still prioritize patching affected Linux fleets because privileged local users could compromise kernel integrity or availability if the race is won.

Business Impact: Low
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
High
Linux kernel is ubiquitous, but the BPF+CAP_BPF+weak-memory-arch path is niche
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Low

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
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

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