CVE-2026-93138

bpf: Fix vmlinux BTF prep race in bpf_get_btf_vmlinux

State
Published
Severity
7.8 High
Published
Sep 17, 2026
Updated
Oct 19, 2026
Reserved
Sep 17, 2026

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 8580ac9404f6240668a026785d7d8856f0530409 to before f32a4a40bc635be25d6816da4bd91e9e58c31bf3Affected
  • 8580ac9404f6240668a026785d7d8856f0530409 to before a7fe72d780122eb934536f1719abad445f6afdf7Affected
  • 8580ac9404f6240668a026785d7d8856f0530409 to before e18a10b39c994f04e1ebd7f8fc042bb1ca8ad053Affected
  • 8580ac9404f6240668a026785d7d8856f0530409 to before 978524ecfc1c539282df5858de1eec20748c6f74Affected
  • 8580ac9404f6240668a026785d7d8856f0530409 to before eaf302628a78806f66d8224d6ba03fb4d5025de4Affected
  • 8580ac9404f6240668a026785d7d8856f0530409 to before 2892f3f44bf865c8fb6b6c0960edec4cc91806eeAffected
  • 8580ac9404f6240668a026785d7d8856f0530409 to before 86d11c594d60b255b526fa5260f669463fb1a063Affected
  • 8580ac9404f6240668a026785d7d8856f0530409 to before 92863e678070f57c17c868e4bfa2441a5c61ad2bAffected
LinuxLinux
  • 5.5Affected
  • before 5.5Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.