CVE-2026-72427

bpf: Fix effective prog array index with BPF_F_PREORDER

HIGH
7.8
CVSS Score
Published: August 15, 2026 at 05:56 AM UTC
Updated: October 16, 2026 at 07:17 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix effective prog array index with BPF_F_PREORDER replace_effective_prog() and purge_effective_progs() located the slot in the effective array by walking the program hlist and counting entries linearly. That count does not match the array layout: compute_effective_ progs() places BPF_F_PREORDER programs at the front (ancestor cgroup first, attach order within a cgroup) and the rest after them (descendant cgroup first). So when a preorder program is present, the linear hlist position no longer equals the program's index in the effective array. For replace_effective_prog() (bpf_link_update()) this overwrote the wrong slot, corrupting the effective order. For purge_effective_progs(), it could dummy out a slot belonging to a different program and leave the detached program in the array while bpf_prog_put() drops its reference, i.e. a use-after-free. Fix both by replaying compute_effective_progs()'s placement (including the per-cgroup preorder reversal) in a shared effective_prog_pos() helper. Identify the entry by its struct bpf_prog_list pointer rather than by (prog, link) value, so the lookup resolves to exactly the attachment the syscall selected even when the same bpf_prog is attached to several cgroups in the hierarchy.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4707ad649cf662add3058bff47430817811b048d4b82b181a26cff8bf7adc3a85a88d121d92edeaf555c0b713ca83968d3c843cb15485b9ba3367b1b6.12.316.14.96.156.6.93bc8023ef3b11410682e5d4990e05e5bc2d3e1c94
Vendor states this is fixed in 41b4320b84fdafe1ab586b06453d30d50415db59 (fixed)
Vendor states this is fixed in 525e408c27ae714e538b8c608c3a974df3ab6c92 (fixed)
Vendor states this is fixed in 9697db03e010391c55ae75192cbdf30c5a72c114 (fixed)
Vendor states this is fixed in b584f107ab90222bd825dcb4c5977326ff684109 (fixed)
Vendor states this is fixed in f08aaee3152d0dfc578b3f2586932d82062701dd (fixed)
Vendor states this is fixed in 6.12.97 (unaffected)
Vendor states this is fixed in 6.15 (unaffected)
Vendor states this is fixed in 6.18.40 (unaffected)
Vendor states this is fixed in 6.6.145 (unaffected)
Vendor states this is fixed in 7.1.5 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

SSVC — Action Prioritization

SSVCNo known exploitNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

7.8HIGHLinux
Vector?

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card