Skip to main content

Linux Kernel EUVDEUVD-2026-59326

| CVE-2026-72427 HIGH
2026-08-15 Linux GHSA-6pxh-c54r-cxc3
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.8 HIGH

AV:L and PR:L reflect local BPF syscall access obtainable via unprivileged user namespaces on default Ubuntu; C/I/A:H because kernel UAF enables arbitrary memory corruption and full privilege escalation.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
HIGH
qualitative
Red Hat
7.0 MEDIUM
qualitative

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 09:22 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
7.8 (HIGH)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 05:56 cve.org
HIGH 7.8
CVE Published
Aug 15, 2026 - 05:56 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

AnalysisAI

Use-after-free and effective program array corruption in the Linux kernel's BPF cgroup subsystem allow a local attacker with BPF attachment privileges to escalate to root via kernel memory corruption. The flaw in replace_effective_prog() and purge_effective_progs() miscalculates array slot positions when BPF_F_PREORDER programs are present in a cgroup hierarchy, causing purge_effective_progs() to zero the wrong slot and call bpf_prog_put() while a stale reference to the freed program remains in the array. With CVSS 7.8, EPSS at 0.18% (7th percentile), and no CISA KEV listing or public exploit identified at time of analysis, real-world risk is modulated by the non-default precondition of BPF_F_PREORDER cgroup program usage.

Technical ContextAI

The Linux kernel BPF subsystem allows BPF programs to be attached to cgroups for network and system call filtering. The BPF_F_PREORDER attachment flag alters execution ordering: compute_effective_progs() places BPF_F_PREORDER entries at the front of the effective program array (ancestor-cgroup first, then in attach order within a cgroup), with non-preorder entries following (descendant-cgroup first). The buggy replace_effective_prog() and purge_effective_progs() functions determined each program's position by linearly walking the hlist and counting entries, an ordering that only matches the array layout when no BPF_F_PREORDER programs are present. When they are present, the linear hlist count diverges from the actual array index. For replace_effective_prog() (invoked by bpf_link_update()), this overwrites the wrong array slot, silently corrupting cgroup BPF execution order. For purge_effective_progs(), it zeros a slot belonging to a different program and then calls bpf_prog_put() on the detached program, dropping its reference count to zero while a live pointer to it persists in the effective array - a kernel use-after-free (UAF). The fix introduces an effective_prog_pos() helper that replays compute_effective_progs() placement logic and identifies attachments by struct bpf_prog_list pointer rather than (prog, link) tuple, resolving ambiguity when the same bpf_prog is attached to multiple cgroups. Affected CPE: cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*. No CWE was formally assigned, but the root cause maps to CWE-416 (Use After Free) for the purge path and CWE-682 (Incorrect Calculation) for the index logic.

RemediationAI

Apply the vendor-released patch by upgrading to Linux 6.12.97 or later for systems on the 6.12 stable series, or to Linux 6.6.145 or later for systems on the 6.6 LTS series. Distributions maintaining their own kernel packages (RHEL, Ubuntu, SUSE, Debian) should be monitored for backported fixes; consult distribution security advisories at https://nvd.nist.gov/vuln/detail/CVE-2026-72427 for tracking. If immediate kernel update is not feasible, restrict BPF attachment capabilities by disabling unprivileged user namespaces via sysctl kernel.unprivileged_userns_clone=0 - this eliminates the PR:L exploitation vector but breaks rootless container tools such as Podman and Buildah and may affect browser sandboxing in Chrome and Firefox. Alternatively, deploy a seccomp profile or AppArmor/SELinux policy that blocks bpf() syscall for non-privileged users in sensitive workloads. Environments that do not use BPF_F_PREORDER cgroup program attachments are not exposed to the UAF path in purge_effective_progs(), though the slot-corruption in replace_effective_prog() can still silently corrupt cgroup BPF policy ordering without producing an immediate crash.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

Share

EUVD-2026-59326 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy