CVE-2025-68208
NoneCVSS
—
EPSS
0.2%
Published
Dec 16, 2025
CISA due date
—
Cloudanix analysis
A flaw in the Linux kernel's safety checks for certain low-level network programs could let an attacker on the same machine crash the system or potentially run code with higher privileges.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- OS kernel
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The BPF verifier's widen_imprecise_scalars() function can perform out-of-bounds reads/writes on bpf_verifier_state->frame[*]->stack because it does not account for differing allocated_stack depths between an ancestor state (prev_st) and a queued descendant state (queued_st).
Why it matters to the business
Systems running affected kernels may experience crashes or allow local attackers to corrupt kernel memory when unprivileged or containerized eBPF programs are loaded, increasing risk of denial of service or privilege escalation on servers and appliances that use BPF.
How an attack unfolds
An attacker compiles an eBPF program containing a loop that calls the same function with varying stack usage; the verifier's state exploration reaches widen_imprecise_scalars() with mismatched stack depths, causing an out-of-bounds stack access during imprecise scalar widening.
How to fix it
Upgrade Linux kernel to version 6.6.117 or later (or the equivalent stable commit 64b12dca2b0abcb5fc0542887d18b926ea5cf711) and rebuild any custom kernels; restart affected systems or reload BPF programs after the update. For helm-fips (Chainguard) update to 3.17.0-r2.
How to confirm the fix worked
Confirm the running kernel contains commit 64b12dca2b0abcb5fc0542887d18b926ea5cf711 or is at least version 6.6.117; attempt to load a test eBPF program that exercises the previously vulnerable widen_imprecise_scalars() path and verify the verifier no longer crashes or reports an error.
Typical attack path
- Load a crafted eBPF program via bpf() syscall or through a user-space component
- Trigger verifier path that calls find_prev_entry() followed by push_stack() and widen_imprecise_scalars()
- Cause ancestor and queued states to have different allocated_stack values
- Trigger out-of-bounds access on verifier stack frames
- Achieve kernel memory corruption or crash
How to detect it
Review kernel logs (dmesg, /var/log/kern.log) for verifier oops or stack-out-of-bounds messages around the time of BPF program loads; monitor audit logs for unusual bpf() syscalls from non-root processes.
What your security team should do
- Apply the kernel update within the next maintenance window
- Restrict unprivileged BPF loading via kernel.unprivileged_bpf_disabled=1 until patched
- Audit any workloads that load custom eBPF programs for compatibility after upgrade
The record
In the Linux kernel, the following vulnerability has been resolved: bpf: account for current allocated stack depth in widen_imprecise_scalars() The usage pattern for widen_imprecise_scalars() looks as follows: prev_st = find_prev_entry(env, ...); queued_st = push_stack(...); widen_imprecise_scalars(env, prev_st, queued_st); Where prev_st is an ancestor of the queued_st in the explored states tree. This ancestor is not guaranteed to have same allocated stack depth as queued_st. E.g. in the following case: def main(): for i in 1..2: foo(i) // same callsite, differnt param def foo(i): if i == 1: use 128 bytes of stack iterator based loop Here, for a second 'foo' call prev_st->allocated_stack is 128, while queued_st->allocated_stack is much smaller. widen_imprecise_scalars() needs to take this into account and avoid accessing bpf_verifier_state->frame[*]->stack out of bounds.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Linux | Kernel | 0 | 6.6.117 |
| Mageia:9 | kernel | 0 | 6.6.120-1.mga9 |
| Mageia:9 | kernel-linus | 0 | 6.6.120-1.mga9 |
| Mageia:9 | kmod-virtualbox | 0 | 7.1.14-14.mga9 |
| Mageia:9 | kmod-xtables-addons | 0 | 3.24-88.mga9 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-azure | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-default | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 0 | 6.12.0-160000.9.1.160000.2.6 |
| openSUSE:Leap 16.0 | kernel-docs | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-rt | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-source | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-syms | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 0 | 6.12.0-160000.9.1 |
Related vulnerabilities
- CVE-2026-23226 In the Linux kernel, the following vulnerability has been resolved: ksmbd: add chann_lock… Also affects Kernel
- CVE-2026-23225 In the Linux kernel, the following vulnerability has been resolved: sched/mmcid: Don't… Also affects Kernel
- CVE-2026-23230 In the Linux kernel, the following vulnerability has been resolved: smb: client: split… Also affects Kernel
- CVE-2026-23224 In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue… Also affects Kernel
- CVE-2026-23227 In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use… Also affects Kernel
- CVE-2026-23223 In the Linux kernel, the following vulnerability has been resolved: xfs: fix UAF in… Also affects Kernel
- CVE-2026-23228 In the Linux kernel, the following vulnerability has been resolved: smb: server: fix leak… Also affects Kernel
- CVE-2026-23229 In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add… Also affects Kernel