In the Linux kernel, the following vulnerability has been resolved:
bpf: Reject negative offsets for ALU ops
When verifying BPF programs, the checkaluop() 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 BPFMOD/BPFDIV. 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.
[
{
"digest": {
"line_hashes": [
"54347899927396344585026227254332158878",
"123484423166798147947012779328499431699",
"280013472988625345711922733697115001747",
"73359265110944634233235237634423777133",
"331627869352445197094502023200886457251",
"131434319104246021568818906719289275979",
"121067180857091352785857959548866833749",
"79086041723558375911370180152848932863"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/verifier.c"
},
"deprecated": false,
"id": "CVE-2025-40169-177b7735",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3bce44b344040e5eef3d64d38b157c15304c0aab",
"signature_type": "Line"
},
{
"digest": {
"length": 5600.0,
"function_hash": "300514061916402605562027912898265524131"
},
"target": {
"file": "kernel/bpf/verifier.c",
"function": "check_alu_op"
},
"deprecated": false,
"id": "CVE-2025-40169-52619950",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5017c302ca4b2a45149ad64e058fa2d5623c068f",
"signature_type": "Function"
},
{
"digest": {
"line_hashes": [
"54347899927396344585026227254332158878",
"123484423166798147947012779328499431699",
"280013472988625345711922733697115001747",
"73359265110944634233235237634423777133",
"331627869352445197094502023200886457251",
"131434319104246021568818906719289275979",
"121067180857091352785857959548866833749",
"79086041723558375911370180152848932863"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/verifier.c"
},
"deprecated": false,
"id": "CVE-2025-40169-6385b624",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@21167bf70dbe400563e189ac632258d35eda38b5",
"signature_type": "Line"
},
{
"digest": {
"line_hashes": [
"54347899927396344585026227254332158878",
"123484423166798147947012779328499431699",
"280013472988625345711922733697115001747",
"73359265110944634233235237634423777133",
"331627869352445197094502023200886457251",
"131434319104246021568818906719289275979",
"121067180857091352785857959548866833749",
"79086041723558375911370180152848932863"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/verifier.c"
},
"deprecated": false,
"id": "CVE-2025-40169-7bae9002",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5017c302ca4b2a45149ad64e058fa2d5623c068f",
"signature_type": "Line"
},
{
"digest": {
"length": 5832.0,
"function_hash": "323128750765487431060607897376675746271"
},
"target": {
"file": "kernel/bpf/verifier.c",
"function": "check_alu_op"
},
"deprecated": false,
"id": "CVE-2025-40169-939da481",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@21167bf70dbe400563e189ac632258d35eda38b5",
"signature_type": "Function"
},
{
"digest": {
"line_hashes": [
"54347899927396344585026227254332158878",
"123484423166798147947012779328499431699",
"280013472988625345711922733697115001747",
"73359265110944634233235237634423777133",
"331627869352445197094502023200886457251",
"131434319104246021568818906719289275979",
"121067180857091352785857959548866833749",
"79086041723558375911370180152848932863"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/verifier.c"
},
"deprecated": false,
"id": "CVE-2025-40169-ac6708d5",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@55c0ced59fe17dee34e9dfd5f7be63cbab207758",
"signature_type": "Line"
},
{
"digest": {
"length": 5696.0,
"function_hash": "307828354079035225810891447153493504374"
},
"target": {
"file": "kernel/bpf/verifier.c",
"function": "check_alu_op"
},
"deprecated": false,
"id": "CVE-2025-40169-e3fe4b76",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@55c0ced59fe17dee34e9dfd5f7be63cbab207758",
"signature_type": "Function"
},
{
"digest": {
"length": 5195.0,
"function_hash": "100790947869994854373177542030359229402"
},
"target": {
"file": "kernel/bpf/verifier.c",
"function": "check_alu_op"
},
"deprecated": false,
"id": "CVE-2025-40169-f3289a62",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3bce44b344040e5eef3d64d38b157c15304c0aab",
"signature_type": "Function"
}
]