Skip to main content

Linux Kernel CVE-2025-68208

HIGH
2025-12-16 416baaa9-dc9f-4396-8d5f-8c081fb06d67
7.8
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.8 HIGH

Local eBPF load privilege gives PR:L and AV:L; program construction is deterministic (AC:L); OOB in kernel verifier state yields high memory-safety impact across C/I/A.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
6.0 MEDIUM
AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:H
Red Hat
5.5 MEDIUM
qualitative

Primary rating from Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67).

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Analysis Generated
Jul 30, 2026 - 07:22 vuln.today
CVE Published
Dec 16, 2025 - 14:15 cve.org
HIGH 7.8

DescriptionCVE.org

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.

AnalysisAI

Out-of-bounds memory access in the Linux kernel's eBPF verifier (widen_imprecise_scalars()) allows a local actor able to load eBPF programs to read or corrupt kernel memory beyond the bpf_verifier_state stack array. The flaw arises because the verifier assumed an ancestor state (prev_st) shares the same allocated_stack depth as a newly queued state (queued_st), which is false when the same callsite is invoked with differently sized stack frames. No public exploit has been identified at time of analysis; EPSS risk is low (0.17%, 7th percentile) and the issue has been resolved upstream.

Technical ContextAI

The vulnerability lives in the Berkeley Packet Filter (eBPF) verifier, the in-kernel static analyzer that validates BPF bytecode before JIT compilation and execution. During state-space exploration the verifier widens imprecise scalar values from a previously explored ancestor state onto a newly pushed state via widen_imprecise_scalars(). Each verifier state tracks per-frame register and stack slot state in bpf_verifier_state->frame[*]->stack, whose size is governed by allocated_stack. Because a shared callsite can be reached with different stack depths (e.g. one code path uses 128 bytes and another much less), the ancestor's allocated_stack can exceed the queued state's, and iterating over the larger bound indexes the smaller state's stack array out of bounds. The root cause class is a classic out-of-bounds access (CWE-125/CWE-787 family; NVD lists CWE as N/A) driven by an incorrect array-bounds assumption. Affected code is the kernel BPF subsystem itself, so any kernel build with BPF enabled contains the vulnerable logic prior to the fix commits.

Affected ProductsAI

The Linux kernel BPF subsystem is affected in versions containing widen_imprecise_scalars() prior to the fix. No specific version range or CPE was provided in the input; affected releases are those before the stable trees represented by the fix commits at git.kernel.org (57e04e2ff56e, 64b12dca2b0a, 9944c7938cd5, b0c8e6d3d866). The four separate stable-branch commits indicate the fix was backported across multiple maintained kernel series. Exact vulnerable version boundaries should be confirmed from each stable branch's changelog, as NVD supplied no CPE match data.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed - apply the kernel update from your distribution that incorporates the fix commits (git.kernel.org/stable/c/57e04e2ff56e32f923154f0f7bc476fcb596ffe7, /64b12dca2b0abcb5fc0542887d18b926ea5cf711, /9944c7938cd5b3f37b0afec0481c7c015e4f1c58, /b0c8e6d3d866b6a7f73877f71968dbffd27b7785). Because these are stable-tree commits rather than a single tagged release, track your distribution's security advisory for the corresponding backported kernel package version and reboot into the patched kernel. As a compensating control until patched, ensure unprivileged eBPF is disabled by setting sysctl kernel.unprivileged_bpf_disabled=1 (or =2), which prevents non-privileged users from loading BPF programs and reaching the vulnerable verifier path - trade-off: this can break legitimate unprivileged BPF workloads such as some seccomp/observability tooling. Where feasible, further restrict CAP_BPF/CAP_SYS_ADMIN to trusted service accounts and constrain container capabilities (drop CAP_BPF/CAP_SYS_ADMIN in unneeded workloads), noting this may disable in-container tracing or networking eBPF features.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
Container suse/sl-micro/6.0/baremetal-os-container:latest Affected
Container suse/sl-micro/6.0/base-os-container:2.1.3-7.95 Image SL-Micro Affected
Container suse/sl-micro/6.0/kvm-os-container:2.1.3-6.115 Affected
Container suse/sl-micro/6.0/rt-os-container:2.1.3-7.146 Affected
Container suse/sl-micro/6.0/toolbox:latest Affected

Share

CVE-2025-68208 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy