---
id: CVE-2026-98589
title: 'bpf: Reject pkt arguments in mutating subprogs'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  bpf: Reject pkt arguments in mutating subprogs

  The verifier tracks changes in how PTR_TO_PACKET registers'
  bounds are modified across subprog boundaries. PTR_TO_PACKET…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    0b6b2bb9b90ad1e2d94d18f626258a1dbbdee0ea
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    a6c1edfbe240e4377038a0e1d233ad81fde9a21b
  - Linux < 7.2.9
  - Linux (all versions)
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:19:01.769Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98589'
references:
  - url: 'https://git.kernel.org/stable/c/0b6b2bb9b90ad1e2d94d18f626258a1dbbdee0ea'
  - url: 'https://git.kernel.org/stable/c/a6c1edfbe240e4377038a0e1d233ad81fde9a21b'
tags:
  - cve.org
ingestedAt: '2026-10-18T15:45:12.250Z'
---

## Overview

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

bpf: Reject pkt arguments in mutating subprogs

The verifier tracks changes in how PTR_TO_PACKET registers'
bounds are modified across subprog boundaries. PTR_TO_PACKET
registers are actually passed as PTR_TO_MEM, which is assumed
valid for the entire call. This is not the case with packet memory,
where a pskb_* call may invalidate its memory region.

Reject BPF code that passes PTR_TO_PACKET pointers to subprogs that
may mutate a packet. We cannot pass the pointer as a true PTR_TO_PACKET
because we would also need to somehow pass the PTR_TO_PACKET_META
or PTR_TO_PACKET_END to the subprog. Since we cannot avoid representing
the pointer in the subprog as PTR_TO_MEM, only permit it if the
subprog is guaranteed not to mutate the packet.

## Affected

- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 0b6b2bb9b90ad1e2d94d18f626258a1dbbdee0ea`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < a6c1edfbe240e4377038a0e1d233ad81fde9a21b`
- `Linux < 7.2.9`
- `Linux (all versions)`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
