CVE-2026-93144
High · 7.8CVSS
7.8
EPSS
0.2%
Published
Sep 17, 2026
CISA due date
—
Cloudanix analysis
A bug in the Linux kernel could let a logged-in user on the computer improperly change protected internal data that should only be readable.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
The flaw allows non-read accesses through PTR_UNTRUSTED BTF pointers created by helpers such as bpf_rdonly_cast(), bypassing the default read-only policy enforced by the BTF access path.
Why it matters to the business
Local users on affected Linux systems could gain unauthorized write access to kernel structures, leading to potential privilege escalation, data corruption, or system instability.
How an attack unfolds
An attacker with local access loads a BPF program that obtains an untrusted BTF pointer via bpf_rdonly_cast() and then performs writes through it; the check_ptr_to_btf_access() callback incorrectly validates the write before the common rejection logic runs.
How to fix it
Apply the upstream kernel patch that rejects non-read accesses through PTR_UNTRUSTED BTF pointers at the common entry point before any callback branch.
How to confirm the fix worked
Verify the presence of the fix by inspecting the kernel source for the updated check_ptr_to_btf_access() logic or by testing that writes through untrusted BTF pointers are rejected.
Typical attack path
- Obtain local user access on a Linux system
- Craft and load a BPF program using bpf_rdonly_cast() to create a PTR_UNTRUSTED pointer
- Issue a write operation through that pointer inside a program-type btf_struct_access callback
- Bypass the read-only check and modify kernel memory
How to detect it
Review kernel audit logs and BPF verifier output for unexpected write attempts through BTF pointers; examine system call traces involving bpf() with map or program types that use BTF casting.
What your security team should do
- Prioritize kernel updates on systems that heavily use BPF programs
- Restrict unprivileged BPF loading via sysctl until patched
- Monitor for local privilege-escalation attempts involving BPF
The record
In the Linux kernel, the following vulnerability has been resolved: bpf: Reject writes through untrusted BTF pointers check_ptr_to_btf_access() lets program-type btf_struct_access callbacks validate writes before the default BTF access path rejects non-read accesses. That bypasses the read-only policy for untrusted BTF pointers created by helpers such as bpf_rdonly_cast(). Reject non-read accesses through PTR_UNTRUSTED BTF pointers at the common entry point, before the callback branch to handle all cases.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|