Cloudanix VulnDB

CVE-2026-98591

None

CVSS

—

EPSS

0.2%

Published

Oct 18, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A recent Linux kernel bug could let specially crafted network-handling code access the wrong memory, potentially crashing machines or allowing attackers to gain more control than they should.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Unsigned subtraction in skb_pointer_if_linear allows underflow when offset exceeds skb_headlen, bypassing the linear-area bounds check and returning an arbitrary pointer of the form *(skb->data + off) that backs a dynptr with invalid memory.

Why it matters to the business

Attackers with the ability to load BPF programs can trigger kernel memory corruption on affected Linux systems, risking crashes, denial of service, or local privilege escalation across servers, containers, and network devices.

How an attack unfolds

An attacker loads a BPF program that uses skb-backed dynptrs, supplies an offset larger than skb_headlen to skb_pointer_if_linear, triggers the underflow so the bounds check passes, obtains an invalid pointer, and then uses the resulting dynptr to read or write outside intended skb bounds.

How to fix it

Upgrade the Linux kernel to a version containing the corrected skb_pointer_if_linear logic that uses safe u64 arithmetic and explicitly fails the check on potential underflow; rebuild and redeploy any custom kernels or distributions that embed the vulnerable code.

How to confirm the fix worked

Confirm the running kernel contains the bounds-check fix by inspecting the skb_pointer_if_linear implementation or by running regression tests that exercise skb-backed dynptr creation with offsets near skb_headlen; monitor for the absence of spurious pointer generation in BPF verifier or runtime logs.

Typical attack path

  1. Obtain capability to load unprivileged or privileged BPF programs on the target host
  2. Craft a BPF program that creates an skb-backed dynptr and invokes skb_pointer_if_linear with a carefully chosen offset
  3. Trigger the underflow in the unsigned subtraction so the linear-area check erroneously succeeds
  4. Receive an out-of-bounds pointer that backs the dynptr with invalid memory
  5. Use the corrupted dynptr to perform reads or writes that corrupt kernel memory or leak data

How to detect it

Review kernel logs for oops or warnings mentioning skb_pointer_if_linear or dynptr; inspect audit logs for unusual BPF program loads or verifier rejections around dynptr creation; correlate with process execution of bpftool or custom loaders shortly before crashes.

What your security team should do

  • Prioritize kernel updates on all systems that allow unprivileged BPF loading
  • Restrict unprivileged BPF program loading via sysctl or LSM policies until patches are applied
  • Audit production workloads for direct use of skb-backed dynptrs in custom BPF code
  • Enable kernel hardening features such as lockdown mode and BPF JIT hardening

The record

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix bounds check for skb-backed dynptrs The skb_pointer_if_linear() function checks whether a memory region of length len starting at offset off into the skb is in the linear area, and returns a pointer to the region if so. The check currently subtracts between skb_headlen and offset of the check, and since skb_headlen is unsigned the subtraction can underflow. This causes the bounds check to spuriously pass and generate an arbitrary pointer of the form *(skb->data + off). The only user of this helper is currently skb-backed BPF dynptr code. Returning the wrong pointer leads to the dynptr erroneously being backed with invalid memory. Ensure the subtraction cannot underflow, and fail the check if it would. Use u64 arithmetic to also prevent overflow when calculating (skb_headlen(skb) - off) since off is unsigned.

Affected packages

Ecosystem Package Introduced Fixed