HomeDefectsLIN1022-17361
Acknowledged

LIN1022-17361 : Security Advisory - linux - CVE-2025-39748

Created: Sep 11, 2025    Updated: Jan 26, 2026
Resolved Date: Jan 19, 2026
Found In Version: 10.22.33.1
Severity: Standard
Applicable for: Wind River Linux LTS 22
Component/s: Kernel

Description

In the Linux kernel, the following vulnerability has been resolved:

bpf: Forget ranges when refining tnum after JSET

Syzbot reported a kernel warning due to a range invariant violation on
the following BPF program.

 0: call bpf_get_netns_cookie
 1: if r0 == 0 goto <exit>
 2: if r0 & Oxffffffff goto <exit>

The issue is on the path where we fall through both jumps.

That path is unreachable at runtime: after insn 1, we know r0 != 0, but
with the sign extension on the jset, we would only fallthrough insn 2
if r0 == 0. Unfortunately, is_branch_taken() isn't currently able to
figure this out, so the verifier walks all branches. The verifier then
refines the register bounds using the second condition and we end
up with inconsistent bounds on this unreachable path:

 1: if r0 == 0 goto <exit>
 r0: u64=[0x1, 0xffffffffffffffff] var_off=(0, 0xffffffffffffffff)
 2: if r0 & 0xffffffff goto <exit>
 r0 before reg_bounds_sync: u64=[0x1, 0xffffffffffffffff] var_off=(0, 0)
 r0 after reg_bounds_sync: u64=[0x1, 0] var_off=(0, 0)

Improving the range refinement for JSET to cover all cases is tricky. We
also don't expect many users to rely on JSET given LLVM doesn't generate
those instructions. So instead of improving the range refinement for
JSETs, Eduard suggested we forget the ranges whenever we're narrowing
tnums after a JSET. This patch implements that approach.

 

========Wind River Notice========

It cannot backport directly due to context gap, the context changed represents a substantial amount of BPF subsystem evolution  that would be risky to backport as it could introduce regressions or compatibility issues.

 

Mitigation:

The default WindRiver Linux kernel prevents unprivileged users from being able to use eBPF by the kernel.unprivileged_bpf_disabled sysctl. This would require a privileged user with CAP_SYS_ADMIN or root to be able to abuse this flaw reducing its attack space.

For the WindRiver Linux to confirm the current state, inspect the sysctl with the command:

cat /proc/sys/kernel/unprivileged_bpf_disabled

The setting of 1 would mean that unprivileged users can not use eBPF, mitigating the flaw.

CVEs