Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify system accepting eBPF programs via prevail
-
DeliveryCraft program with ALU32 ADD/SUB on pointer-typed register
-
ExploitSubmit program for verification
-
ExecutionVerifier incorrectly approves program as safe
-
PersistRuntime executes program with upper-half-zeroed pointer
-
ImpactTrigger 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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
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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Verifier bypass in PREVAIL, the polynomial-runtime eBPF verifier (used notably as the abstract-interpretation verifier i
Verifier bypass in PREVAIL (vbpf/prevail), the polynomial-runtime eBPF static verifier, before version 0.2.4 lets an att
EUVD-2026-70245
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB