CVE-2026-98631
NoneCVSS
—
EPSS
0.2%
Published
Oct 18, 2026
CISA due date
—
Cloudanix analysis
A recent Linux kernel bug could let specially crafted network socket operations read memory they should not, potentially exposing sensitive data on systems that use advanced packet processing features.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The xsk_map_gen_lookup function generates a BPF bounds check using BPF_JMP_IMM on a u32 key against max_entries; sign-extension of the immediate causes any max_entries >= 0x80000000 to be treated as a value larger than any 32-bit key, allowing an out-of-range index to bypass the check and perform an out-of-bounds read past the xsk_map array.
Why it matters to the business
Systems relying on AF_XDP sockets with large XSK maps may experience kernel memory disclosure or crashes, increasing exposure on high-throughput networking hosts until patched; the issue is recent and has shown negligible exploitation activity so far.
How an attack unfolds
An attacker with the ability to create or influence an XSK map with max_entries at or above 0x80000000 supplies a crafted lookup key that triggers the incorrectly generated comparison; the sign-extended threshold allows the index to skip the bounds check, resulting in an out-of-bounds memory read that can be used for information disclosure.
How to fix it
Apply the upstream kernel fix that replaces BPF_JMP_IMM with BPF_JMP32_IMM in xsk_map_gen_lookup; rebuild and deploy updated kernels on all affected systems; prioritize hosts using AF_XDP sockets.
How to confirm the fix worked
Confirm the presence of the corrected comparison using BPF_JMP32_IMM in the xsk_map_gen_lookup function in the running kernel source or binary; test map creation and lookup with max_entries values both below and above 0x80000000 to verify bounds enforcement.
Typical attack path
- Create or control an AF_XDP socket map configured with max_entries >= 0x80000000
- Trigger xsk_map_gen_lookup via a map lookup operation from a BPF program or user-space XSK API call
- Supply a key that would normally be rejected by the bounds check
- Observe or exfiltrate data read from memory beyond the xsk_map array
How to detect it
Examine kernel audit logs and BPF verifier traces for anomalous map lookup behavior; look for XSK map allocations with unusually large entry counts followed by unexpected memory access patterns in crash dumps or eBPF tracing.
What your security team should do
- Inventory all Linux systems using AF_XDP or XSK maps and schedule kernel updates
- Monitor upstream stable and distribution kernels for the backported fix
- Apply updates within normal patch windows given low EPSS and absence from KEV
- Review any custom BPF programs that interact with XSK maps for additional hardening
The record
In the Linux kernel, the following vulnerability has been resolved: xsk: Use a 32-bit compare in xsk_map_gen_lookup xsk_map_gen_lookup() loads a u32 key and compares it with max_entries using BPF_JMP_IMM. BPF immediates are sign-extended to 64 bits, so a max_entries value of 0x80000000 or higher becomes a threshold larger than every zero-extended 32-bit key. An out-of-range index then skips the bounds check and the generated lookup reads past xsk_map[]. Compare with BPF_JMP32_IMM so the check stays in 32-bit unsigned range.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|