5.5

CVE-2024-58088: bpf: Fix deadlock when freeing cgroup storage

Modified
AliasesUBUNTU-CVE-2024-58088DEBIAN-CVE-2024-58088
Published 12-03-2025Last modified 11-05-2026

Vulnerability summary

CVE-2024-58088 is a medium (CVSS 5.5) Improper Locking vulnerability in linux. EPSS estimates a 0.18% chance of exploitation in the next 30 days, higher than 7.9% of scored vulnerabilities.

Priority
Routine

Not severe (CVSS 5.5, local access); no exploitation reported by the 5 checked sources

Source freshness unavailable

How is this decided?
CVSS score
5.5/10
010
Medium · v3.1 (CVE.org)
EPSS score
0.18%
0%100%
Low · +0.02 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits0No public exploits recorded

Advisory lineage

Upstream 0 · Downstream 22 · Related 19

Timeline

  1. 12-03-2025
    PublishedVulnerability first disclosed.
  2. 11-05-2026
    Last modifiedVulnerability information updated.

Description

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix deadlock when freeing cgroup storage The following commit bc235cdb423a ("bpf: Prevent deadlock from recursive bpf_task_storage_[get|delete]") first introduced deadlock prevention for fentry/fexit programs attaching on bpf_task_storage helpers. That commit also employed the logic in map free path in its v6 version. Later bpf_cgrp_storage was first introduced in c4bcfb38a95e ("bpf: Implement cgroup storage available to non-cgroup-attached bpf progs") which faces the same issue as bpf_task_storage, instead of its busy counter, NULL was passed to bpf_local_storage_map_free() which opened a window to cause deadlock: <TASK> (acquiring local_storage->lock) _raw_spin_lock_irqsave+0x3d/0x50 bpf_local_storage_update+0xd1/0x460 bpf_cgrp_storage_get+0x109/0x130 bpf_prog_a4d4a370ba857314_cgrp_ptr+0x139/0x170 ? __bpf_prog_enter_recur+0x16/0x80 bpf_trampoline_6442485186+0x43/0xa4 cgroup_storage_ptr+0x9/0x20 (holding local_storage->lock) bpf_selem_unlink_storage_nolock.constprop.0+0x135/0x160 bpf_selem_unlink_storage+0x6f/0x110 bpf_local_storage_map_free+0xa2/0x110 bpf_map_free_deferred+0x5b/0x90 process_one_work+0x17c/0x390 worker_thread+0x251/0x360 kthread+0xd2/0x100 ret_from_fork+0x34/0x50 ret_from_fork_asm+0x1a/0x30 </TASK> Progs: - A: SEC("fentry/cgroup_storage_ptr") - cgid (BPF_MAP_TYPE_HASH) Record the id of the cgroup the current task belonging to in this hash map, using the address of the cgroup as the map key. - cgrpa (BPF_MAP_TYPE_CGRP_STORAGE) If current task is a kworker, lookup the above hash map using function parameter @owner as the key to get its corresponding cgroup id which is then used to get a trusted pointer to the cgroup through bpf_cgroup_from_id(). This trusted pointer can then be passed to bpf_cgrp_storage_get() to finally trigger the deadlock issue. - B: SEC("tp_btf/sys_enter") - cgrpb (BPF_MAP_TYPE_CGRP_STORAGE) The only purpose of this prog is to fill Prog A's hash map by calling bpf_cgrp_storage_get() for as many userspace tasks as possible. Steps to reproduce: - Run A; - while (true) { Run B; Destroy B; } Fix this issue by passing its busy counter to the free procedure so it can be properly incremented before storage/smap locking.

CVSS metrics

4 scores · 4 sources · 1 version

EPSS trend

Probability

0.18%

Chance of exploitation in the next 30 days

Percentile

8%

Versus all other CVEs

30-day change

Increase +0.02 pp

From 0.16% on 04-10-2026

04-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

0 found

No public exploits indexed.

Weaknesses

CWE · root cause

Affected systems

Version check

Known conditions: local access, low-privilege account, no user interaction (CVSS vector). Other conditions: not stated in public data.

Ubuntu107 products
  • linux< 6.8.0-78.78
  • linux-allwinner-5.19All versions (No fix recorded)
  • linux-aws< 6.8.0-1035.37
  • linux-aws-5.0All versions (No fix recorded)
  • linux-aws-5.11All versions (No fix recorded)
Linux2 products
  • linux≥ c4bcfb38a95edb1021a53f2d0356a78120ecfbe4, < 6ecb9fa14eec5f15d97c84c36896871335f6ddfb | ≥ c4bcfb38a95edb1021a53f2d0356a78120ecfbe4, < fac674d2bd68f3479f27328626b42d1eebd11fef | ≥ c4bcfb38a95edb1021a53f2d0356a78120ecfbe4, < fcec95b4ab3e7bc6b2f36e5d59f7e24104ea87f7 | ≥ c4bcfb38a95edb1021a53f2d0356a78120ecfbe4, < c78f4afbd962f43a3989f45f3ca04300252b19b5 | 6.2
  • linux_kernel≥ 6.2, < 6.6.80 | ≥ 6.7, < 6.12.17 | ≥ 6.13, < 6.13.5 | 6.14:rc1 | 6.14:rc2 | 6.14:rc3
Debian1 product
  • linux< 6.12.17-1

3 vendors · 110 products

References

18 links
Show all 18 references