Cloudanix VulnDB

CVE-2025-68208

None

CVSS

—

EPSS

0.2%

Published

Dec 16, 2025

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

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

  1. Load a crafted eBPF program via bpf() syscall or through a user-space component
  2. Trigger verifier path that calls find_prev_entry() followed by push_stack() and widen_imprecise_scalars()
  3. Cause ancestor and queued states to have different allocated_stack values
  4. Trigger out-of-bounds access on verifier stack frames
  5. 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