Skip to main content

PREVAIL eBPF Verifier CVE-2026-53706

| EUVDEUVD-2026-70245 HIGH
Incorrect Calculation (CWE-682)
2026-09-02 GitHub_M
8.8
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Identify system accepting eBPF programs via prevail
  2. Delivery
    Craft program with ALU32 ADD/SUB on pointer-typed register
  3. Exploit
    Submit program for verification
  4. Execution
    Verifier incorrectly approves program as safe
  5. Persist
    Runtime executes program with upper-half-zeroed pointer
  6. Impact
    Trigger memory fault or leak lower 32 bits of kernel pointer as scalar

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Calculation correctness
Exploitation Conditions

Exploitation requires that the target system uses prevail as its eBPF verifier and that the attacker can submit eBPF programs for verification. The advisory explicitly confirms that unprivileged users on kernels permitting BPF program loading fall within scope, meaning no authentication is required under those configurations, consistent with PR:N in the provided CVSS 4.0 vector. The vulnerable instruction pattern is specifically ALU32 ADD (w-prefix notation, e.g., w1 += w2) or ALU32 SUB (w1 -= w2) targeting a destination register of pointer type (ctx, stack, packet, or shared). No special runtime configuration beyond access to the BPF program submission interface is required. Exploitation is limited to environments deploying prevail as the verification layer - systems relying solely on the Linux kernel's native eBPF verifier are not affected.

Impact

The CVSS 4.0 score of 8.8 with AV:N/AC:L/PR:N reflects that prevail is commonly invoked for user-submitted programs, including from unprivileged callers, making the verifier surface broadly reachable. Real-world exploitation is bounded by the requirement that the target environment specifically uses prevail for eBPF verification and permits program submission from untrusted callers; environments running only the Linux kernel's native verifier are entirely unaffected. EPSS data is absent from the provided intelligence, and the CVE is not listed in CISA KEV, indicating no confirmed active exploitation. The dual-impact nature - runtime faults (VA:H) and potential partial kernel address disclosure (the lower 32 pointer bits leakable as a scalar, noted explicitly in fix commit comments) - means risk extends beyond a simple crash scenario, and any team deploying eBPF for Windows should treat this as an urgent patch given the verifier's role as the primary safety gate. The VC:N rating in the provided CVSS 4.0 vector may marginally understate the kernel address leakage risk documented in the fix's inline code, though the exposure is limited to the lower 32 bits of a pointer rather than a full address disclosure.

Exploit ScenarioDerived

An unprivileged user submits a crafted eBPF program containing an ALU32 ADD instruction (w1 += w2) where r1 holds a context pointer; prevail fails to check the register's pointer type before masking, so the program is incorrectly marked as verified safe. At runtime the zero-extended truncated value is used as the base for a memory load, which either faults and crashes the program or returns the lower 32 bits of a kernel context address as a scalar, partially exposing kernel address space layout. The regression tests added in the fix commit provide a near-complete reproduction blueprint, though no standalone public PoC has been identified.

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

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

Alert me

AnalysisAIv1 – Sep 02, 2026

Verification bypass in prevail eBPF verifier versions before 0.2.4 allows any caller with eBPF program submission access - including unprivileged users on BPF-enabled kernels - to load programs that incorrectly pass safety checks but destroy the upper 32 bits of kernel pointer registers at runtime via ALU32 ADD and SUB instructions. The runtime effect is either a program fault (availability impact) or exposure of the lower 32 bits of a kernel pointer as a leakable scalar, partially defeating kernel ASLR. A vendor patch is available at v0.2.4; no active exploitation or public exploit code has been identified at time of analysis.

RemediationAI

Upgrade to prevail v0.2.4 or later - vendor-released patch confirmed by GitHub release tag and advisory GHSA-65fp-5qmq-gg2m at https://github.com/vbpf/prevail/releases/tag/v0.2.4. The fix in commit d3fab8c23a93d9a615bc741b254ab26391559e0f adds a type-discriminated branch in ebpf_transformer.cpp so that ALU32 ADD/SUB on pointer-typed registers invokes havoc_register rather than applying a scalar mask, causing any downstream dereference or scalar-return path to correctly fail verification. If immediate upgrade is not feasible, restrict eBPF program submission to privileged callers only; this reduces the attack surface to authenticated privileged users but does not eliminate the underlying verification flaw and should be treated as a temporary measure only. Systems that do not use prevail as their eBPF verifier require no action.

Affected VersionsENISA

prevail < 0.2.4

Affected Packages

euvd prevail fix: 0.2.4

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

PREVAIL (cpe:2.3:a:vbpf:prevail:*:*:*:*:*:*:*:*) is a formal eBPF program verifier that uses abstract interpretation via the Crab domain to certify safety properties before programs are loaded, and serves as the primary verification layer in projects such as eBPF for Windows. ALU32 instructions in eBPF operate on the lower 32 bits of a register and zero-extend the result to 64 bits - correct semantics for scalar values but destructive for pointer-typed registers, since zero-extension silently zeroes the upper 32 bits of a kernel address, producing a value that is neither a valid pointer nor a safely releasable scalar. CWE-682 (Incorrect Calculation) is accurate: the ebpf_transformer.cpp ALU32 handler applied a bitwise mask capped at UINT32_MAX without first discriminating whether the destination register held a numeric or pointer type. The fix in commit d3fab8c23a93d9a615bc741b254ab26391559e0f adds a type-discriminated branch - scalars continue to be masked, while pointers trigger havoc_register, forcing the abstract domain to treat the result as fully unknown so that any subsequent dereference or scalar-return path correctly fails verification. The inline source comment in the fix explicitly notes the dual risk: keeping the pointer type would allow a bad dereference to pass, and retyping to T_NUM would launder kernel address bits into a returnable integer.

Know when Prevail gets its next vulnerability

  • 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 (GitHub_M) PRIMARY 8.8 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 10.0 CRITICAL

Network-accessible verifier with unprivileged submission path; scope change because verified programs execute in kernel context; C:L for partial kernel pointer bits leaked via pointer truncation.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 02, 2026 - 19:17 EUVD
CVE Published
Sep 02, 2026 - 17:54 cve.org
HIGH 8.8

DescriptionCVE.org

PREVAIL is a Polynomial-Runtime EBPF Verifier using an Abstract Interpretation Layer. Prior to version 0.2.4, the prevail eBPF verifier accepts ALU32 ADD and SUB instructions that operate on pointer-typed registers without checking the is64 flag. Because ALU32 arithmetic zero-extends the 32-bit result, the upper half of any pointer is silently destroyed at runtime, yet prevail marks the program as verified safe. Any caller that can submit an eBPF program for verification - including unprivileged users on kernels that permit BPF program loading - can produce a program that passes verification but faults or misbehaves at runtime. This issue has been patched in version 0.2.4.

Technical POC Analysis

CWE-682 (Incorrect Calculation): the verifier treats an ALU32 ADD or SUB on a pointer register as valid pointer arithmetic and emits a false PASS.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

PREVAIL eBPF verifier versions before 0.2.4 contain a verification bypass allowing unprivileged users to load malicious programs that defeat kernel security protections and cause system instability. This vulnerability enables partial kernel ASLR bypass and denial of service; no public exploit has been identified at time of analysis. Organizations running BPF workloads must immediately patch to prevent privilege escalation and availability disruptions.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Low
specialized eBPF verifier used primarily in eBPF for Windows
Data Quality
6 sources
Confidence: High

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.3%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
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.

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