CVE-2026-98588: bpf, sockmap: Reject max_entries > INT_MAX in sock_map_alloc

Published Oct 18, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

bpf, sockmap: Reject maxentries > INTMAX in sockmapalloc

sockmapalloc() only rejects maxentries == 0 and otherwise allows any u32 value. sockmapfree() then walks the sks[] array with a signed int iterator:

int i; for (i = 0; i < stab->map.maxentries; i++) struct sock psk = &stab->sks[i];

When a SOCKMAP is created with maxentries = 0xffffffff (UINTMAX), the allocation of 32 GiB can succeed on large-memory hosts. During free the counter reaches 0x80000000, wraps to INTMIN, 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 sockmapfree(). 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 CONFIGKASANVMALLOC=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:kasancheckrange+0x107/0x190 Call Trace: sockmapfree+0x93/0x190 mapcreate+0x68d/0xb30 sysbpf+0x21e/0x2e70

Vmcore confirmed stab->map.maxentries == 0xffffffff, stab->sks == 0xffffc911ace2d000, and the faulting address sks + (s64)INTMIN 8 exactly at 0xffffc90dace2d000. The same buggy path is reached on the normal close()/bpfmapfreedeferred() path whenever such a map is destroyed.

sockmapalloc() used to bound its allocation size through bpfmapchargeinit(), but the bound was dropped when rlimit-based memory accounting was removed. Reject maxentries > INTMAX at creation time so the signed iterator in sockmapfree() 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 Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    For SOCKMAP creation, reject max_entries values greater than INT_MAX in sock_map_alloc.

Event History

Oct 18, 2026
CVE Published
via MITRE·03:19 PM
Data Sourced
via MITRE·03:19 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203