CVE-2026-90313

bpf, cgroup: Fix invalid storage access after __cgroup_bpf_attach failed

State
Published
Severity
Not scored
Published
Sep 17, 2026
Updated
Oct 30, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

bpf, cgroup: Fix invalid storage access after __cgroup_bpf_attach failed

A potential invalid storage access issue can occur after replacing a cgroup bpf prog.

This occurs in the following scenario: 1. prog1 with storage is attached to a cgroup in multi-attach mode. 2. prog1 is replaced with prog2 using BPF_F_REPLACE in multi-attach mode, but fails midway (e.g. in bpf_trampoline_link_cgroup_shim or update_effective_progs). 3. A new prog3 is attached to the cgroup in multi-attach mode.

The reason is that __cgroup_bpf_attach overwrites pl->storage with the new storage prior to attachment completion. When attachment fails midway, the cleanup path calls bpf_cgroup_storages_free(new_storage) to free the newly allocated storage, but fails to restore pl->storage back to old_storage.

Consequently, the still-active prog1 holds invalid or dangling storage pointers, leading to an invalid memory access when prog1 executes and calls bpf_get_local_storage. Additionally, original pl->flags and cgrp->bpf.flags[atype] are left unrestored.

Fix this by saving old_pl_flags, old_storage, and old_flags prior to the update, and properly restoring all of them in the cleanup path on error.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 7d9c3427894fe70d1347b4820476bf37736d2ff0 to before 217b257d2c39e8dc32d691e8952f3cd921a80233Affected
  • 7d9c3427894fe70d1347b4820476bf37736d2ff0 to before e26db0d636e4c24a6b16683ea95cf5077c64d74bAffected
  • 7d9c3427894fe70d1347b4820476bf37736d2ff0 to before aaca16e042527f7efe48b50799bc662f1a191ce1Affected
  • 7d9c3427894fe70d1347b4820476bf37736d2ff0 to before 86ead176301109b78e1d14c0e9d0d9ff9723c769Affected
  • 7d9c3427894fe70d1347b4820476bf37736d2ff0 to before 2c2218560b6e28a63ff7834ba26d09ff8efdee39Affected
  • 7d9c3427894fe70d1347b4820476bf37736d2ff0 to before 6655c409707ec8ce9ce0850ffe4fe02331fd4d9cAffected
LinuxLinux
  • 5.9Affected
  • before 5.9Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 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.