CVE Catalog

CVE-2025-40169

HighCVSS 7.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.14%

4th percentile - higher than 4% of all known CVEs

Summary

In the BPF verifier of the Linux kernel, the check_alu_op() function accepts negative values for the 'offset' field in ALU instructions because the condition 'insn->off > 1' passes all negative values. The fix tightens validation to require offset to be exactly 0 or 1.

Risk Assessment

Malformed BPF programs with negative offsets can bypass verification and potentially lead to undefined behavior or privilege escalation.

Recommendation

Update the Linux kernel to a version containing the fix that rejects all offset values other than 0 and 1.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: bpf: Reject negative offsets for ALU ops When verifying BPF programs, the check_alu_op() function validates instructions with ALU operations. The 'offset' field in these instructions is a signed 16-bit integer. The existing check 'insn->off > 1' was intended to ensure the offset is either 0, or 1 for BPF_MOD/BPF_DIV. However, because 'insn->off' is signed, this check incorrectly accepts all negative values (e.g., -1). This commit tightens the validation by changing the condition to '(insn->off != 0 && insn->off != 1)'. This ensures that any value other than the explicitly permitted 0 and 1 is rejected, hardening the verifier against malformed BPF programs.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS