CVE-2026-93138

CVE-2026-93138

High · published September 17, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
6.8
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00176 · 6.8th percentile
Published
2026-09-17T21:18Z
References (8)
EPSS history
Timeline
  • 19 SEP 03:55Z
    EPSS moved — → 0%
    epss
  • 17 SEP 16:11Z
    bpf: Fix vmlinux BTF prep race in bpf_get_btf_vmlinux
    cvelistv5