CVE-2026-98628 (GCVE-0-2026-98628)
Vulnerability from cvelistv5
Published
2026-10-18 15:19
Modified
2026-10-19 09:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: Make post-verification instruction rewrites killable
After do_check() returns, the verifier runs several instruction rewrite
passes. Some of them patch or remove one instruction at a time. Each
operation moves the remaining instruction and auxiliary-data arrays and
adjusts all branch offsets, making the overall work quadratic in the
program length.
A privileged loader can submit 131072 unconditional jumps by zero followed
by a valid return. Verification finishes quickly, but bpf_opt_remove_nops()
then spends a long time removing each jump separately. Since this
post-verification work neither checks for signals nor reschedules, a pending
SIGKILL cannot terminate the task until the rewrite finishes.
Make bpf_patch_insn_data() and verifier_remove_insns() common cancellation
and rescheduling points. These helpers run from BPF_PROG_LOAD process
context, and bpf_patch_insn_data() can already sleep while reallocating
auxiliary data.
Report interrupted constant blinding as -EINTR and propagate it through
both JIT paths, including kernels that permit interpreter fallback.
Other blinding failures retain the existing fallback behavior.
This does not reduce the quadratic cost of the rewrite passes, but it makes
the work preemptible and allows a killed loader to be torn down promptly.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/bpf/core.c",
"kernel/bpf/fixups.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "56dc616d7a1f7d134d3e101c455e62b0a24d0cfd",
"status": "affected",
"version": "52875a04f4b26e7ef30a288ea096f7cfec0e93cd",
"versionType": "git"
},
{
"lessThan": "261b61d3735b042ae25634f795c4540be0fc140c",
"status": "affected",
"version": "52875a04f4b26e7ef30a288ea096f7cfec0e93cd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/bpf/core.c",
"kernel/bpf/fixups.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.9",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Make post-verification instruction rewrites killable\n\nAfter do_check() returns, the verifier runs several instruction rewrite\npasses. Some of them patch or remove one instruction at a time. Each\noperation moves the remaining instruction and auxiliary-data arrays and\nadjusts all branch offsets, making the overall work quadratic in the\nprogram length.\n\nA privileged loader can submit 131072 unconditional jumps by zero followed\nby a valid return. Verification finishes quickly, but bpf_opt_remove_nops()\nthen spends a long time removing each jump separately. Since this\npost-verification work neither checks for signals nor reschedules, a pending\nSIGKILL cannot terminate the task until the rewrite finishes.\n\nMake bpf_patch_insn_data() and verifier_remove_insns() common cancellation\nand rescheduling points. These helpers run from BPF_PROG_LOAD process\ncontext, and bpf_patch_insn_data() can already sleep while reallocating\nauxiliary data.\n\nReport interrupted constant blinding as -EINTR and propagate it through\nboth JIT paths, including kernels that permit interpreter fallback.\nOther blinding failures retain the existing fallback behavior.\n\nThis does not reduce the quadratic cost of the rewrite passes, but it makes\nthe work preemptible and allows a killed loader to be torn down promptly."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:22:56.237Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/56dc616d7a1f7d134d3e101c455e62b0a24d0cfd"
},
{
"url": "https://git.kernel.org/stable/c/261b61d3735b042ae25634f795c4540be0fc140c"
}
],
"title": "bpf: Make post-verification instruction rewrites killable",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98628",
"datePublished": "2026-10-18T15:19:49.746Z",
"dateReserved": "2026-09-25T10:25:14.361Z",
"dateUpdated": "2026-10-19T09:22:56.237Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…