CVE-2023-52587

MEDIUMNVD 5.55.5
EchelonGraph scoreMEDIUM confidence

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

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

A fix is available — apply it.

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

IB/ipoib: Fix mcast list locking

Releasing the priv->lock while iterating the priv->multicast_list in ipoib_mcast_join_task() opens a window for ipoib_mcast_dev_flush() to remove the items while in the middle of iteration. If the mcast is removed while the lock was dropped, the for loop spins forever resulting in a hard lockup (as was reported on RHEL 4.18.0-372.75.1.el8_6 kernel):

Task A (kworker/u72:2 below) | Task B (kworker/u72:0 below) -----------------------------------+----------------------------------- ipoib_mcast_join_task(work) | ipoib_ib_dev_flush_light(work) spin_lock_irq(&priv->lock) | __ipoib_ib_dev_flush(priv, ...) list_for_each_entry(mcast, | ipoib_mcast_dev_flush(dev = priv->dev) &priv->multicast_list, list) | ipoib_mcast_join(dev, mcast) | spin_unlock_irq(&priv->lock) | | spin_lock_irqsave(&priv->lock, flags) | list_for_each_entry_safe(mcast, tmcast, | &priv->multicast_list, list) | list_del(&mcast->list); | list_add_tail(&mcast->list, &remove_list) | spin_unlock_irqrestore(&priv->lock, flags) spin_lock_irq(&priv->lock) | | ipoib_mcast_remove_list(&remove_list) (Here, mcast is no longer on the | list_for_each_entry_safe(mcast, tmcast, priv->multicast_list and we keep | remove_list, list) spinning on the remove_list of | >>> wait_for_completion(&mcast->done) the other thread which is blocked | and the list is still valid on | it's stack.)

Fix this by keeping the lock held and changing to GFP_ATOMIC to prevent eventual sleeps. Unfortunately we could not reproduce the lockup and confirm this fix but based on the code review I think this fix should address such lockups.

crash> bc 31 PID: 747 TASK: ff1c6a1a007e8000 CPU: 31 COMMAND: "kworker/u72:2" -- [exception RIP: ipoib_mcast_join_task+0x1b1] RIP: ffffffffc0944ac1 RSP: ff646f199a8c7e00 RFLAGS: 00000002 RAX: 0000000000000000 RBX: ff1c6a1a04dc82f8 RCX: 0000000000000000 work (&priv->mcast_task{,.work}) RDX: ff1c6a192d60ac68 RSI: 0000000000000286 RDI: ff1c6a1a04dc8000 &mcast->list RBP: ff646f199a8c7e90 R8: ff1c699980019420 R9: ff1c6a1920c9a000 R10: ff646f199a8c7e00 R11: ff1c6a191a7d9800 R12: ff1c6a192d60ac00 mcast R13: ff1c6a1d82200000 R14: ff1c6a1a04dc8000 R15: ff1c6a1a04dc82d8 dev priv (&priv->lock) &priv->multicast_list (aka head) ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 --- --- #5 [ff646f199a8c7e00] ipoib_mcast_join_task+0x1b1 at ffffffffc0944ac1 [ib_ipoib] #6 [ff646f199a8c7e98] process_one_work+0x1a7 at ffffffff9bf10967

crash> rx ff646f199a8c7e68 ff646f199a8c7e68: ff1c6a1a04dc82f8 <<< work = &priv->mcast_task.work

crash> list -hO ipoib_dev_priv.multicast_list ff1c6a1a04dc8000 (empty)

crash> ipoib_dev_priv.mcast_task.work.func,mcast_mutex.owner.counter ff1c6a1a04dc8000 mcast_task.work.func = 0xffffffffc0944910 , mcast_mutex.owner.counter = 0xff1c69998efec000

crash> b 8 PID: 8 TASK: ff1c69998efec000 CPU: 33 COMMAND: "kworker/u72:0" -- #3 [ff646f1980153d50] wait_for_completion+0x96 at ffffffff9c7d7646 #4 [ff646f1980153d90] ipoib_mcast_remove_list+0x56 at ffffffffc0944dc6 [ib_ipoib] #5 [ff646f1980153de8] ipoib_mcast_dev_flush+0x1a7 at ffffffffc09455a7 [ib_ipoib] #6 [ff646f1980153e58] __ipoib_ib_dev_flush+0x1a4 at ffffffffc09431a4 [ib_ipoib] #7 [ff ---truncated---

CVSS v3
5.5
EG Score
5.5(medium)
EG Risk
25(Track)
EG Risk 25/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%
Automatability0% × 15%
Action: Routine — remediate on your standard cadence.
EPSS
23.1%
KEV
Not listed

Published

March 6, 2024

Last Modified

February 14, 2025

References (18)

Patch Availability(17)

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.

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

All Vendor Advisories

(16)

Data Freshness Timeline

(refreshed 12× in last 7d / 47× 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.

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

Frequently asked(5)

What is CVE-2023-52587?
CVE-2023-52587 is a medium vulnerability published on March 6, 2024. In the Linux kernel, the following vulnerability has been resolved: IB/ipoib: Fix mcast list locking Releasing the priv->lock while iterating the priv->multicast_list in ipoibmcastjointask() opens a window for ipoibmcastdevflush() to remove the items while in the middle of iteration. If the mcast…
When was CVE-2023-52587 disclosed?
CVE-2023-52587 was first published in the National Vulnerability Database on March 6, 2024, with the most recent update on February 14, 2025. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2023-52587 actively exploited?
CVE-2023-52587 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 23.1% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2023-52587?
CVE-2023-52587 has a CVSS v3 base score of 5.5 (NVD).
How do I remediate CVE-2023-52587?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2023-52587, 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-2023-52587

Explore →

Is Your Infrastructure Affected by CVE-2023-52587?

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