CVE-2024-56592

MEDIUMNVD 5.55.5
EchelonGraph scoreMEDIUM confidence

Score 5.5 from GitHub Security Advisory published 2024-12-27. NVD baseline CVSS 5.5; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
5.5EG
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • Lower severity and no public exploit yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS: 5.5Exploit: None knownExposed: 0

A fix is available — apply it.

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

bpf: Call free_htab_elem() after htab_unlock_bucket()

For htab of maps, when the map is removed from the htab, it may hold the last reference of the map. bpf_map_fd_put_ptr() will invoke bpf_map_free_id() to free the id of the removed map element. However, bpf_map_fd_put_ptr() is invoked while holding a bucket lock (raw_spin_lock_t), and bpf_map_free_id() attempts to acquire map_idr_lock (spinlock_t), triggering the following lockdep warning:

============================= [ BUG: Invalid wait context ] 6.11.0-rc4+ #49 Not tainted ----------------------------- test_maps/4881 is trying to lock: ffffffff84884578 (map_idr_lock){+...}-{3:3}, at: bpf_map_free_id.part.0+0x21/0x70 other info that might help us debug this: context-{5:5} 2 locks held by test_maps/4881: #0: ffffffff846caf60 (rcu_read_lock){....}-{1:3}, at: bpf_fd_htab_map_update_elem+0xf9/0x270 #1: ffff888149ced148 (&htab->lockdep_key#2){....}-{2:2}, at: htab_map_update_elem+0x178/0xa80 stack backtrace: CPU: 0 UID: 0 PID: 4881 Comm: test_maps Not tainted 6.11.0-rc4+ #49 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), ... Call Trace: dump_stack_lvl+0x6e/0xb0 dump_stack+0x10/0x20 __lock_acquire+0x73e/0x36c0 lock_acquire+0x182/0x450 _raw_spin_lock_irqsave+0x43/0x70 bpf_map_free_id.part.0+0x21/0x70 bpf_map_put+0xcf/0x110 bpf_map_fd_put_ptr+0x9a/0xb0 free_htab_elem+0x69/0xe0 htab_map_update_elem+0x50f/0xa80 bpf_fd_htab_map_update_elem+0x131/0x270 htab_map_update_elem+0x50f/0xa80 bpf_fd_htab_map_update_elem+0x131/0x270 bpf_map_update_value+0x266/0x380 __sys_bpf+0x21bb/0x36b0 __x64_sys_bpf+0x45/0x60 x64_sys_call+0x1b2a/0x20d0 do_syscall_64+0x5d/0x100 entry_SYSCALL_64_after_hwframe+0x76/0x7e

One way to fix the lockdep warning is using raw_spinlock_t for map_idr_lock as well. However, bpf_map_alloc_id() invokes idr_alloc_cyclic() after acquiring map_idr_lock, it will trigger a similar lockdep warning because the slab's lock (s->cpu_slab->lock) is still a spinlock.

Instead of changing map_idr_lock's type, fix the issue by invoking htab_put_fd_value() after htab_unlock_bucket(). However, only deferring the invocation of htab_put_fd_value() is not enough, because the old map pointers in htab of maps can not be saved during batched deletion. Therefore, also defer the invocation of free_htab_elem(), so these to-be-freed elements could be linked together similar to lru map.

There are four callers for ->map_fd_put_ptr:

(1) alloc_htab_elem() (through htab_put_fd_value()) It invokes ->map_fd_put_ptr() under a raw_spinlock_t. The invocation of htab_put_fd_value() can not simply move after htab_unlock_bucket(), because the old element has already been stashed in htab->extra_elems. It may be reused immediately after htab_unlock_bucket() and the invocation of htab_put_fd_value() after htab_unlock_bucket() may release the newly-added element incorrectly. Therefore, saving the map pointer of the old element for htab of maps before unlocking the bucket and releasing the map_ptr after unlock. Beside the map pointer in the old element, should do the same thing for the special fields in the old element as well.

(2) free_htab_elem() (through htab_put_fd_value()) Its caller includes __htab_map_lookup_and_delete_elem(), htab_map_delete_elem() and __htab_map_lookup_and_delete_batch().

For htab_map_delete_elem(), simply invoke free_htab_elem() after htab_unlock_bucket(). For __htab_map_lookup_and_delete_batch(), just like lru map, linking the to-be-freed element into node_to_free list and invoking free_htab_elem() for these element after unlock. It is safe to reuse batch_flink as the link for node_to_free, because these elements have been removed from the hash llist.

Because htab of maps doesn't support lookup_and_delete operation, __htab_map_lookup_and_delete_elem() doesn't have the problem, so kept it as ---truncated---

CVSS v3
5.5
EG Score
5.5(medium)
EG Risk
29(Track)
EG Risk 29/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity55% × 45%
Exploitation0% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
12%
KEV
Not listed

Published

December 27, 2024

Last Modified

October 8, 2025

Patch Availability(15)

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

All Vendor Advisories

(14)

Data Freshness Timeline

(refreshed 7× in last 7d / 38× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 116 total refreshes for this CVE.

  1. 2026-08-07 16:26 UTCEPSS rescore
  2. 2026-08-06 13:45 UTCEPSS rescore
  3. 2026-08-05 19:16 UTCEPSS rescore
  4. 2026-08-04 15:08 UTCEPSS rescore
  5. 2026-08-03 10:35 UTCEPSS rescore
  6. 2026-08-02 02:25 UTCEPSS rescore
  7. 2026-08-02 02:25 UTCEPSS rescore
  8. 2026-08-01 04:14 UTCEPSS rescore
  9. 2026-07-31 07:42 UTCOSV refresh
  10. 2026-07-30 16:26 UTCEPSS rescore
  11. 2026-07-30 16:26 UTCEPSS rescore
  12. 2026-07-30 01:29 UTCEPSS rescore
  13. 2026-07-28 15:35 UTCEPSS rescore
  14. 2026-07-26 14:53 UTCEPSS rescore
  15. 2026-07-25 14:17 UTCEPSS rescore
  16. 2026-07-25 14:17 UTCEPSS rescore
  17. 2026-07-23 14:17 UTCEPSS rescore
  18. 2026-07-23 14:17 UTCEPSS rescore
  19. 2026-07-23 02:45 UTCEG score recompute
  20. 2026-07-22 14:07 UTCEPSS rescore
  21. 2026-07-21 15:23 UTCEPSS rescore
  22. 2026-07-20 17:07 UTCEPSS rescore
  23. 2026-07-19 14:30 UTCEPSS rescore
  24. 2026-07-19 14:30 UTCEPSS rescore
  25. 2026-07-19 02:28 UTCEPSS rescore
Show 75 more
  1. 2026-07-19 02:28 UTCEPSS rescore
  2. 2026-07-18 10:03 UTCEPSS rescore
  3. 2026-07-16 17:02 UTCEPSS rescore
  4. 2026-07-15 16:57 UTCEPSS rescore
  5. 2026-07-15 01:59 UTCEPSS rescore
  6. 2026-07-15 01:59 UTCEPSS rescore
  7. 2026-07-13 22:29 UTCEPSS rescore
  8. 2026-07-13 15:37 UTCOSV refresh
  9. 2026-07-13 06:12 UTCEPSS rescore
  10. 2026-07-12 05:45 UTCEPSS rescore
  11. 2026-07-11 08:26 UTCEPSS rescore
  12. 2026-07-09 19:09 UTCEPSS rescore
  13. 2026-07-09 19:09 UTCEPSS rescore
  14. 2026-07-08 15:14 UTCEPSS rescore
  15. 2026-07-07 13:45 UTCEPSS rescore
  16. 2026-07-07 13:45 UTCEPSS rescore
  17. 2026-07-06 16:26 UTCEPSS rescore
  18. 2026-07-06 16:26 UTCEPSS rescore
  19. 2026-07-06 02:22 UTCEPSS rescore
  20. 2026-07-05 02:29 UTCEPSS rescore
  21. 2026-07-04 06:30 UTCEPSS rescore
  22. 2026-07-04 06:30 UTCEPSS rescore
  23. 2026-07-01 15:06 UTCEPSS rescore
  24. 2026-06-30 23:21 UTCEPSS rescore
  25. 2026-06-30 23:21 UTCEPSS rescore
  26. 2026-06-29 14:05 UTCEPSS rescore
  27. 2026-06-28 14:07 UTCEPSS rescore
  28. 2026-06-28 04:55 UTCEPSS rescore
  29. 2026-06-28 04:55 UTCEPSS rescore
  30. 2026-06-27 03:08 UTCEPSS rescore
  31. 2026-06-27 03:07 UTCEPSS rescore
  32. 2026-06-25 13:49 UTCEPSS rescore
  33. 2026-06-25 13:49 UTCEPSS rescore
  34. 2026-06-25 13:01 UTCOSV refresh
  35. 2026-06-24 14:04 UTCEPSS rescore
  36. 2026-06-24 14:04 UTCEPSS rescore
  37. 2026-06-23 21:32 UTCEPSS rescore
  38. 2026-06-22 14:25 UTCEPSS rescore
  39. 2026-06-22 14:25 UTCEPSS rescore
  40. 2026-06-21 14:56 UTCEPSS rescore
  41. 2026-06-21 14:56 UTCEPSS rescore
  42. 2026-06-21 01:59 UTCEPSS rescore
  43. 2026-06-19 19:25 UTCEPSS rescore
  44. 2026-06-19 19:25 UTCEPSS rescore
  45. 2026-06-18 17:52 UTCEPSS rescore
  46. 2026-06-18 17:52 UTCEPSS rescore
  47. 2026-06-17 17:52 UTCEPSS rescore
  48. 2026-06-16 17:52 UTCEPSS rescore
  49. 2026-06-15 17:48 UTCEPSS rescore
  50. 2026-06-14 23:17 UTCEPSS rescore
  51. 2026-06-13 22:59 UTCEPSS rescore
  52. 2026-06-13 22:59 UTCEPSS rescore
  53. 2026-06-12 23:11 UTCEPSS rescore
  54. 2026-06-12 23:11 UTCEPSS rescore
  55. 2026-06-11 13:59 UTCEPSS rescore
  56. 2026-06-11 13:59 UTCEPSS rescore
  57. 2026-06-10 22:18 UTCEPSS rescore
  58. 2026-06-10 22:18 UTCEPSS rescore
  59. 2026-06-10 13:21 UTCEPSS rescore
  60. 2026-06-08 14:16 UTCEPSS rescore
  61. 2026-06-08 14:16 UTCEPSS rescore
  62. 2026-06-08 03:28 UTCOSV refresh
  63. 2026-06-07 15:24 UTCEPSS rescore
  64. 2026-06-07 15:24 UTCEPSS rescore
  65. 2026-06-05 22:46 UTCEPSS rescore
  66. 2026-06-05 22:46 UTCEPSS rescore
  67. 2026-06-05 06:09 UTCEPSS rescore
  68. 2026-06-05 06:09 UTCEPSS rescore
  69. 2026-06-04 13:11 UTCEPSS rescore
  70. 2026-06-04 13:11 UTCEPSS rescore
  71. 2026-06-02 20:12 UTCEPSS rescore
  72. 2026-06-02 20:12 UTCEPSS rescore
  73. 2026-06-01 13:51 UTCEPSS rescore
  74. 2026-06-01 13:51 UTCEPSS rescore
  75. 2026-06-01 13:51 UTCEPSS rescore

Frequently asked(5)

What is CVE-2024-56592?
CVE-2024-56592 is a medium vulnerability published on December 27, 2024. In the Linux kernel, the following vulnerability has been resolved: bpf: Call freehtabelem() after htabunlockbucket() For htab of maps, when the map is removed from the htab, it may hold the last reference of the map. bpfmapfdputptr() will invoke bpfmapfree_id() to free the id of the removed map…
When was CVE-2024-56592 disclosed?
CVE-2024-56592 was first published in the National Vulnerability Database on December 27, 2024, with the most recent update on October 8, 2025. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2024-56592 actively exploited?
CVE-2024-56592 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0% probability of exploitation in the next 30 days, which ranks it in the top 87.8% of all scored CVEs.
What is the CVSS score of CVE-2024-56592?
CVE-2024-56592 has a CVSS v3 base score of 5.5 (NVD).
How do I remediate CVE-2024-56592?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2024-56592, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2024-56592

Explore →

Is Your Infrastructure Affected by CVE-2024-56592?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.