CVE-2026-53081: Linux Kernel BPF Verifier State Pruning Bypass
A flaw in the Linux kernel's BPF (Berkeley Packet Filter) verification engine allows two register states that should be considered incompatible to be incorrectly marked as equivalent. The verifier maintains a mapping of register identities to detect when optimization shortcuts would be unsafe. When comparing registers that both contain offset constants (BPF_ADD_CONST), the verifier was creating separate mapping entries without checking if their underlying identities conflicted. This breaks the consistency guarantee that prevents unsafe state pruning, potentially allowing a crafted eBPF program to bypass security checks that would normally catch logical inconsistencies.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-386
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-23
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: bpf: Enforce regsafe base id consistency for BPF_ADD_CONST scalars When regsafe() compares two scalar registers that both carry BPF_ADD_CONST, check_scalar_ids() maps their full compound id (aka base | BPF_ADD_CONST flag) as one idmap entry. However, it never verifies that the underlying base ids, that is, with the flag stripped are consistent with existing idmap mappings. This allows construction of two verifier states where the old state has R3 = R2 + 10 (both sharing base id A) while the current state has R3 = R4 + 10 (base id C, unrelated to R2). The idmap creates two independent entries: A->B (for R2) and A|flag->C|flag (for R3), without catching that A->C conflicts with A->B. State pruning then incorrectly succeeds. Fix this by additionally verifying base ID mapping consistency whenever BPF_ADD_CONST is set: after mapping the compound ids, also invoke check_ids() on the base IDs (flag bits stripped). This ensures that if A was already mapped to B from comparing the source register, any ADD_CONST derivative must also derive from B, not an unrelated C.
7 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in the regsafe() function used during BPF program verification. When comparing two scalar registers both carrying the BPF_ADD_CONST flag, check_scalar_ids() maps their compound identifiers (base ID with flag set) as a single idmap entry. The issue is that it does not verify the consistency of the underlying base IDs (with the flag stripped) against existing idmap mappings. An adversary can construct two verifier states where the old state has register R3 = R2 + 10 (both sharing base id A) while the current state has R3 = R4 + 10 (with unrelated base id C). The idmap creates two independent entries: A->B and A|flag->C|flag, without detecting the conflict between A->C and the existing A->B mapping. This leads to incorrect state pruning success. The fix adds an explicit check_ids() invocation on the stripped base IDs after mapping the compound IDs, ensuring that any BPF_ADD_CONST derivative must derive from the same previously-mapped base ID.
Business impact
Exploitation could enable an unprivileged local user to bypass eBPF security verification controls, potentially leading to unauthorized kernel memory access, privilege escalation, or denial of service. Organizations relying on eBPF-based security policies, container sandboxing, or in-kernel filtering would face a direct bypass vector on vulnerable kernel versions. The practical impact depends on whether unprivileged eBPF is enabled and what privileges are required to load programs in a given deployment.
Affected systems
The Linux kernel is the sole affected component. All versions prior to the fix are vulnerable. The specific patched version should be verified against the official Linux kernel release notes and security advisories, as kernel fix integration timelines vary by distribution.
Exploitability
Exploitation requires the ability to load BPF programs into the kernel, which typically requires CAP_BPF or CAP_SYS_ADMIN capability. While this represents a local attack surface, unprivileged BPF loading is enabled in some modern kernel configurations and container runtimes, expanding the attack surface. No in-the-wild exploits have been reported to date. Crafting a valid exploit requires sophisticated knowledge of eBPF bytecode and verifier internals, but the vulnerability is deterministic once triggered.
Remediation
Apply the kernel patch that adds base ID consistency checking to the regsafe() and check_scalar_ids() path. Verify against your Linux distribution's security advisory for the specific kernel version and patch identifier. As an interim measure, disable unprivileged BPF loading via the kernel.unprivileged_bpf_disabled sysctl if not required.
Patch guidance
Consult your Linux distribution's security bulletin for the patched kernel version addressing CVE-2026-53081. Typical remediation involves updating to a kernel version that includes the idmap consistency check on stripped base IDs. Verify the fix is included by confirming the change to the BPF verifier's compound ID handling logic. Test in a controlled environment before production deployment.
Detection guidance
Monitor system logs for BPF program load attempts, particularly from unprivileged users or containers. Audit kernel configuration to ensure kernel.unprivileged_bpf_disabled is set to 1 if unprivileged BPF is not required. Use BPF program tracing and seccomp rules to log or restrict bpf() syscalls. Network-focused detection is limited since the vulnerability is entirely in-kernel; endpoint and kernel audit logging are primary signals.
Why prioritize this
The HIGH CVSS score (7.8) reflects local privilege escalation potential with high impact (confidentiality, integrity, availability). Prioritization should be elevated if your environment enables unprivileged eBPF, runs untrusted container workloads, or uses eBPF-based security controls. Organizations with strict kernel hardening and CAP_BPF restrictions may deprioritize slightly, but the verifier bypass nature warrants near-term remediation.
Risk score, explained
CVSS 7.8 (HIGH) is driven by: local attack vector (AV:L), low attack complexity (AC:L), low privilege requirement (PR:L), no user interaction (UI:N), unchanged scope (S:U), and high impact across confidentiality, integrity, and availability (C:H/I:H/A:H). The score does not account for limited real-world exploitability (requires BPF loading capability) but appropriately weights the severity of a verifier bypass that could lead to complete kernel compromise.
Frequently asked questions
Can this be exploited remotely?
No. The vulnerability requires local access and the ability to load BPF programs into the kernel. Remote exploitation is not possible.
What is the relationship between this flaw and container security?
Container runtimes and Kubernetes may enable unprivileged eBPF for performance monitoring or policy enforcement. If so, a compromised container could load a malicious BPF program to bypass security checks. Disabling unprivileged BPF at the host kernel level mitigates this risk.
Does the fix require a kernel reboot?
Yes. Kernel patches must be applied and the system rebooted to load the fixed kernel code. Live kernel patching (if available in your distribution) may offer an alternative, but verification against the vendor is required.
Are there workarounds if I cannot patch immediately?
Set kernel.unprivileged_bpf_disabled = 1 via sysctl to restrict BPF program loading to root. This eliminates the local unprivileged attack surface. However, this may break legitimate unprivileged eBPF use cases; evaluate your workloads before applying.
This analysis is provided for informational purposes. The patch version numbers and specific kernel releases have not been independently verified; consult official Linux vendor advisories for accurate patch details. Proof-of-concept code is not provided. Organizations should conduct internal testing before deploying patches. SEC.co makes no warranties regarding the completeness or accuracy of this assessment. Source: NVD (public-domain), retrieved 2026-08-01. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-0270HIGHCortex XSOAR Path Traversal on Linux — Exploit Requirements & Patching Guide
- CVE-2026-0271HIGHPalo Alto Networks Prisma Access Agent Linux Privilege Escalation
- CVE-2026-10001HIGHChrome Sandbox Escape via PerformanceManager Use-After-Free
- CVE-2026-10002HIGHGoogle Chrome PDFium Use-After-Free Vulnerability (CVSS 8.8)
- CVE-2026-10003HIGHChrome Use-After-Free Code Execution Vulnerability Analysis
- CVE-2026-10006HIGHChrome WebAudio Race Condition Remote Code Execution
- CVE-2026-10007HIGHChrome Use-After-Free in SVG Arbitrary Code Execution (CVSS 8.8)
- CVE-2026-10009HIGHChrome Skia Integer Overflow Sandbox Escape – Patch Guidance