CVE-2026-72427

bpf: Fix effective prog array index with BPF_F_PREORDER

State
Published
Severity
7.8 High
Published
Aug 15, 2026
Updated
Oct 16, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • bc8023ef3b11410682e5d4990e05e5bc2d3e1c94 to before 525e408c27ae714e538b8c608c3a974df3ab6c92Affected
  • 555c0b713ca83968d3c843cb15485b9ba3367b1b to before 41b4320b84fdafe1ab586b06453d30d50415db59Affected
  • 4b82b181a26cff8bf7adc3a85a88d121d92edeaf to before 9697db03e010391c55ae75192cbdf30c5a72c114Affected
  • 4b82b181a26cff8bf7adc3a85a88d121d92edeaf to before b584f107ab90222bd825dcb4c5977326ff684109Affected
  • 4b82b181a26cff8bf7adc3a85a88d121d92edeaf to before f08aaee3152d0dfc578b3f2586932d82062701ddAffected
  • 4707ad649cf662add3058bff47430817811b048dAffected
  • 6.6.93 to before 6.6.145Affected
  • 6.12.31 to before 6.12.97Affected
  • 6.14.9 to before 6.15Affected
LinuxLinux
  • 6.15Affected
  • before 6.15Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.