CVE-2026-98590
Full vulnerability record from the local CVENow database.
Description
In the Linux kernel, the following vulnerability has been resolved: bpf: Fix bpf_sock context code generation Currently, the ctx access code reads the rx_queue_mapping field with either a 4-byte or 2-byte load. The rest of the bits in the register are marked known zero by the verifier. However, the emitted ctx access code places in the register on certain the special value (-1) using BPF_MOV_IMM64, which gets sign-extended to turn on all the bits in the register. By shifting this value right, the program ends up with a value at runtime above what the verifier assumes is possible. Fix this by ensuring the read value is as wide as the assumed size. Use MOV32 instructions instead of MOV64 instructions to keep the upper bits zero as assumed by the verifier. Also properly report the size of the destination variable (the bpf_sock field, 4 bytes) instead of the source (the socket field, 2 bytes).
View original CVE JSON
{
"id": "CVE-2026-98590",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"published": "2026-10-18T16:17:11.610",
"lastModified": "2026-10-19T10:19:20.057",
"vulnStatus": "Received",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Fix bpf_sock context code generation\n\nCurrently, the ctx access code reads the rx_queue_mapping\nfield with either a 4-byte or 2-byte load. The rest of the bits\nin the register are marked known zero by the verifier. However,\nthe emitted ctx access code places in the register on certain\nthe special value (-1) using BPF_MOV_IMM64, which gets sign-extended\nto turn on all the bits in the register. By shifting this value right,\nthe program ends up with a value at runtime above what the verifier\nassumes is possible.\n\nFix this by ensuring the read value is as wide as the assumed size.\nUse MOV32 instructions instead of MOV64 instructions to keep\nthe upper bits zero as assumed by the verifier. Also properly report\nthe size of the destination variable (the bpf_sock field, 4 bytes) instead\nof the source (the socket field, 2 bytes)."
}
],
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "unaffected",
"programFiles": [
"net/core/filter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "c3c16f2ea6d20159903cf93afbb1155f3d8348d5",
"lessThan": "e3ddcf4aeb342d4de2e5761c7042270d454752de",
"versionType": "git",
"status": "affected"
},
{
"version": "c3c16f2ea6d20159903cf93afbb1155f3d8348d5",
"lessThan": "4a41d064facc3330e176ecbbf5b0026ed18a5c69",
"versionType": "git",
"status": "affected"
},
{
"version": "c3c16f2ea6d20159903cf93afbb1155f3d8348d5",
"lessThan": "70288599d1754e157df8326239316dbdf08ea33c",
"versionType": "git",
"status": "affected"
},
{
"version": "c3c16f2ea6d20159903cf93afbb1155f3d8348d5",
"lessThan": "ea4dc96c902ccfa49dd3e4f23c443dab4a74b018",
"versionType": "git",
"status": "affected"
},
{
"version": "c3c16f2ea6d20159903cf93afbb1155f3d8348d5",
"lessThan": "b3f37afc7fd7c52bc2114310aff1eb24c7cd4d73",
"versionType": "git",
"status": "affected"
},
{
"version": "c3c16f2ea6d20159903cf93afbb1155f3d8348d5",
"lessThan": "d95dd5a6c6cd08d5ae466d3aed27b3cf59155a6c",
"versionType": "git",
"status": "affected"
},
{
"version": "c3c16f2ea6d20159903cf93afbb1155f3d8348d5",
"lessThan": "84ebb991ae985149079ae9ab51b7e3ba25a9ff53",
"versionType": "git",
"status": "affected"
},
{
"version": "c3c16f2ea6d20159903cf93afbb1155f3d8348d5",
"lessThan": "4a4852376e3a2727ea40e61143d6d7c22bb6dfad",
"versionType": "git",
"status": "affected"
}
]
},
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "affected",
"programFiles": [
"net/core/filter.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "5.8",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.8",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "5.10.271",
"lessThanOrEqual": "5.10.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "5.15.222",
"lessThanOrEqual": "5.15.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.1.189",
"lessThanOrEqual": "6.1.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.6.158",
"lessThanOrEqual": "6.6.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.12.112",
"lessThanOrEqual": "6.12.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.18.55",
"lessThanOrEqual": "6.18.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.2.9",
"lessThanOrEqual": "7.2.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.3",
"lessThanOrEqual": "*",
"versionType": "original_commit_for_fix",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {},
"references": [
{
"url": "https://git.kernel.org/stable/c/4a41d064facc3330e176ecbbf5b0026ed18a5c69",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/4a4852376e3a2727ea40e61143d6d7c22bb6dfad",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/70288599d1754e157df8326239316dbdf08ea33c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/84ebb991ae985149079ae9ab51b7e3ba25a9ff53",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/b3f37afc7fd7c52bc2114310aff1eb24c7cd4d73",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/d95dd5a6c6cd08d5ae466d3aed27b3cf59155a6c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/e3ddcf4aeb342d4de2e5761c7042270d454752de",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/ea4dc96c902ccfa49dd3e4f23c443dab4a74b018",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
]
}