GHSA-V3GV-6QR6-4MH5
Vulnerability from github – Published: 2026-10-18 18:31 – Updated: 2026-10-18 18:31In the Linux kernel, the following vulnerability has been resolved:
bpf, sockmap: Reject max_entries > INT_MAX in sock_map_alloc
sock_map_alloc() only rejects max_entries == 0 and otherwise allows any u32 value. sock_map_free() then walks the sks[] array with a signed int iterator:
int i;
for (i = 0; i < stab->map.max_entries; i++)
struct sock **psk = &stab->sks[i];
When a SOCKMAP is created with max_entries = 0xffffffff (UINT_MAX), the allocation of 32 GiB can succeed on large-memory hosts. During free the counter reaches 0x80000000, wraps to INT_MIN, is sign-extended by movslq and turned into a ~16 GiB negative offset from stab->sks, pointing far below the allocation.
The faulting access is an xchg() write in sock_map_free(). Without KASAN, the same out-of-bounds write can fault on an unmapped vmalloc page or corrupt an unrelated allocation if that vmalloc address is populated. On a KASAN kernel with CONFIG_KASAN_VMALLOC=y, the shadow check for that address hits an unmapped shadow page and oopses first:
BUG: unable to handle page fault for address: fffff521b59c5a00 RIP: 0010:kasan_check_range+0x107/0x190 Call Trace: sock_map_free+0x93/0x190 map_create+0x68d/0xb30 __sys_bpf+0x21e/0x2e70
Vmcore confirmed stab->map.max_entries == 0xffffffff, stab->sks == 0xffffc911ace2d000, and the faulting address sks + (s64)INT_MIN * 8 exactly at 0xffffc90dace2d000. The same buggy path is reached on the normal close()/bpf_map_free_deferred() path whenever such a map is destroyed.
sock_map_alloc() used to bound its allocation size through bpf_map_charge_init(), but the bound was dropped when rlimit-based memory accounting was removed. Reject max_entries > INT_MAX at creation time so the signed iterator in sock_map_free() never sees a value that would overflow.
Triggered by syzkaller and reproduced on both a 6.6-based KASAN kernel and the upstream v7.3-rc2 kernel.
{
"affected": [],
"aliases": [
"CVE-2026-98588"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-10-18T16:17:11Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf, sockmap: Reject max_entries \u003e INT_MAX in sock_map_alloc\n\nsock_map_alloc() only rejects max_entries == 0 and otherwise allows any\nu32 value. sock_map_free() then walks the sks[] array with a signed int\niterator:\n\n\tint i;\n\tfor (i = 0; i \u003c stab-\u003emap.max_entries; i++)\n\t\tstruct sock **psk = \u0026stab-\u003esks[i];\n\nWhen a SOCKMAP is created with max_entries = 0xffffffff (UINT_MAX), the\nallocation of 32 GiB can succeed on large-memory hosts. During free the\ncounter reaches 0x80000000, wraps to INT_MIN, is sign-extended by movslq\nand turned into a ~16 GiB negative offset from stab-\u003esks, pointing far\nbelow the allocation.\n\nThe faulting access is an xchg() write in sock_map_free(). Without\nKASAN, the same out-of-bounds write can fault on an unmapped vmalloc page\nor corrupt an unrelated allocation if that vmalloc address is populated.\nOn a KASAN kernel with CONFIG_KASAN_VMALLOC=y, the shadow check for that\naddress hits an unmapped shadow page and oopses first:\n\n BUG: unable to handle page fault for address: fffff521b59c5a00\n RIP: 0010:kasan_check_range+0x107/0x190\n Call Trace:\n sock_map_free+0x93/0x190\n map_create+0x68d/0xb30\n __sys_bpf+0x21e/0x2e70\n\nVmcore confirmed stab-\u003emap.max_entries == 0xffffffff, stab-\u003esks ==\n0xffffc911ace2d000, and the faulting address sks + (s64)INT_MIN * 8\nexactly at 0xffffc90dace2d000. The same buggy path is reached on the\nnormal close()/bpf_map_free_deferred() path whenever such a map is\ndestroyed.\n\nsock_map_alloc() used to bound its allocation size through\nbpf_map_charge_init(), but the bound was dropped when rlimit-based memory\naccounting was removed. Reject max_entries \u003e INT_MAX at creation time so\nthe signed iterator in sock_map_free() never sees a value that would\noverflow.\n\nTriggered by syzkaller and reproduced on both a 6.6-based KASAN kernel\nand the upstream v7.3-rc2 kernel.",
"id": "GHSA-v3gv-6qr6-4mh5",
"modified": "2026-10-18T18:31:55Z",
"published": "2026-10-18T18:31:55Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98588"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/814a81c842bd88f6bd8a4ce550d560df071a5d03"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/909f761868fda329dc69130ef9eb5b5795bcdf00"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/ba7d627dbc67d62df2fa66d7b41e743c3ace0ec8"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/c56191af3a578b9cc265fa3bd5fc0752c59c1781"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/cc70972ddbf0e3398f2f32624d31db78594d50d8"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/cea597519b9ca6d691c98d92460ead8ece2a07af"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/f4a73f49e256bd835368504462be3b57b03febff"
}
],
"schema_version": "1.4.0",
"severity": []
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.