CVE-2026-53081
NoneCVSS
—
EPSS
0.2%
Published
Jun 24, 2026
CISA due date
—
Cloudanix analysis
A flaw in some Linux kernels could let someone who can run code on a machine gain deeper control over that machine.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Improper Input Validation
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This is a Linux kernel eBPF verifier flaw caused by inconsistent validation of scalar register identity mappings during verifier state comparison. In affected kernels, the verifier may incorrectly treat two eBPF program states as equivalent when an ADD_CONST-derived scalar register is actually based on a different underlying register identity. That can cause unsafe verifier state pruning and may allow a crafted eBPF program to bypass intended safety checks. If exploitation is practical on a given kernel configuration, the likely impact is local kernel privilege escalation, kernel memory corruption, or denial of service through execution of an eBPF program that should have been rejected.
Why it matters to the business
Successful exploitation could let a user or compromised process with the ability to load eBPF programs escalate privileges to the host kernel level, potentially compromising the entire Linux system and workloads running on it. Risk is highest on systems where unprivileged eBPF is enabled or where attackers can obtain credentials/capabilities that permit BPF program loading. The CVE is not currently in CISA KEV, has no known public exploit maturity in the provided data, and has a low EPSS score, so remediation should be prioritized through normal kernel patch management, with higher urgency for multi-user systems, container hosts, CI runners, and internet-facing Linux infrastructure.
How an attack unfolds
An attacker first needs local code execution or another foothold that allows interaction with the bpf() syscall and the ability to submit eBPF programs for verification. They then craft an eBPF program whose verifier states create conflicting scalar register base identities involving BPF_ADD_CONST-derived values. Because the affected verifier does not consistently validate the stripped base IDs when comparing states, it may incorrectly conclude that a later state is safe based on an earlier state and prune further analysis. If the attacker can turn that verifier confusion into unsafe memory access or corrupted verifier assumptions, the loaded eBPF program may execute with kernel privileges and be used to read or write kernel memory, crash the host, or escalate privileges. No active exploitation, named threat actor use, ransomware association, or public exploit maturity is indicated in the supplied data.
How to fix it
Upgrade to a Linux kernel version that contains the upstream fix enforcing base ID consistency for BPF_ADD_CONST scalar registers in the eBPF verifier. Because no exact affected products or fixed package versions were provided, use the fixed kernel packages from the relevant Linux distribution or vendor advisory once available. As compensating controls, disable unprivileged eBPF where operationally feasible, restrict BPF program loading to trusted privileged users, minimize CAP_BPF and CAP_SYS_ADMIN assignment, avoid running containers with excessive capabilities or privileged mode, and apply seccomp/AppArmor/SELinux policies that limit access to the bpf() syscall for untrusted workloads.
How to confirm the fix worked
Confirm the running kernel includes the vendor fix for this issue, not just that updated packages are installed. Validate with uname -r, distribution package metadata, and the vendor kernel changelog or advisory referencing the eBPF verifier fix for BPF_ADD_CONST scalar base ID consistency. Check whether unprivileged eBPF is disabled by verifying kernel.unprivileged_bpf_disabled where supported. Review container runtime and service configurations for CAP_BPF, CAP_SYS_ADMIN, privileged containers, or permissive seccomp profiles. Where possible, use vendor-provided vulnerability scanners or kernel live-patch status tools to confirm the active kernel is no longer vulnerable after reboot or live patch application.
Typical attack path
- Obtain local execution on a vulnerable Linux system or inside a context that can access the bpf() syscall.
- Confirm that eBPF program loading is permitted through unprivileged BPF or capabilities such as CAP_BPF, CAP_SYS_ADMIN, or equivalent container/runtime permissions.
- Submit a specially crafted eBPF program designed to trigger inconsistent verifier state pruning involving BPF_ADD_CONST scalar register IDs.
- Bypass verifier safety assumptions and load an eBPF program that should have been rejected.
- Use the unsafe eBPF program behavior to attempt kernel memory corruption, privilege escalation, information disclosure, or denial of service.
- Establish persistence or move laterally using the elevated host-level access if exploitation succeeds.
How to detect it
Look for evidence that untrusted or unexpected processes loaded eBPF programs before the kernel was fixed. Useful sources include Linux auditd logs for bpf() syscall activity, eBPF observability/audit tooling, endpoint process telemetry, shell history, container runtime logs, Kubernetes audit logs, sudo logs, and kernel logs around verifier activity, warnings, crashes, or abnormal BPF load failures. Hunt for BPF program loads initiated by unexpected binaries, scripts, temporary-directory executables, containers running with CAP_BPF or CAP_SYS_ADMIN, privileged pods, CI job processes, web service accounts, or recently compromised users. Investigate sequences where a low-privileged process invokes bpf(), loads maps/programs, and is followed by privilege changes, new root shells, kernel oops/panic messages, suspicious credential access, or container escape indicators. There are no CVE-specific exploit strings in the supplied data; detection should focus on anomalous BPF loading and post-exploitation behavior on vulnerable kernels.
What your security team should do
- Inventory Linux systems running kernels that may include the vulnerable eBPF verifier logic, prioritizing container hosts, Kubernetes nodes, CI/build runners, shared bastion hosts, and multi-user servers.
- Apply fixed kernel updates through the operating system vendor and reboot or verify live-patch activation so the fixed kernel is actually running.
- Disable unprivileged eBPF where it is not required, for example by setting kernel.unprivileged_bpf_disabled according to vendor guidance.
- Audit and reduce CAP_BPF, CAP_SYS_ADMIN, privileged container usage, and broad seccomp exceptions that permit bpf() from untrusted workloads.
- Monitor for unusual BPF program loading activity, especially from non-standard users, containers, temporary directories, build agents, or recently compromised accounts.
- Treat suspicious BPF loading on vulnerable hosts as a potential privilege-escalation attempt and preserve kernel logs, audit logs, process execution telemetry, and container runtime metadata for investigation.
- Because this issue is not currently KEV-listed and has low EPSS in the supplied data, prioritize remediation based on local exposure to untrusted users and workloads rather than emergency internet-facing remote-exploit criteria.
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|