CVE-2025-21664

MEDIUMNVD 5.55.5
EchelonGraph scoreMEDIUM confidence

Score 5.5 from GitHub Security Advisory published 2025-01-21. NVD baseline CVSS 5.5; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
Trending — 4 sources updated this week
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:

dm thin: make get_first_thin use rcu-safe list first function

The documentation in rculist.h explains the absence of list_empty_rcu() and cautions programmers against relying on a list_empty() -> list_first() sequence in RCU safe code. This is because each of these functions performs its own READ_ONCE() of the list head. This can lead to a situation where the list_empty() sees a valid list entry, but the subsequent list_first() sees a different view of list head state after a modification.

In the case of dm-thin, this author had a production box crash from a GP fault in the process_deferred_bios path. This function saw a valid list head in get_first_thin() but when it subsequently dereferenced that and turned it into a thin_c, it got the inside of the struct pool, since the list was now empty and referring to itself. The kernel on which this occurred printed both a warning about a refcount_t being saturated, and a UBSAN error for an out-of-bounds cpuid access in the queued spinlock, prior to the fault itself. When the resulting kdump was examined, it was possible to see another thread patiently waiting in thin_dtr's synchronize_rcu.

The thin_dtr call managed to pull the thin_c out of the active thins list (and have it be the last entry in the active_thins list) at just the wrong moment which lead to this crash.

Fortunately, the fix here is straight forward. Switch get_first_thin() function to use list_first_or_null_rcu() which performs just a single READ_ONCE() and returns NULL if the list is already empty.

This was run against the devicemapper test suite's thin-provisioning suites for delete and suspend and no regressions were observed.

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
14%
KEV
Not listed

Published

January 21, 2025

Last Modified

August 5, 2026

Advisory Details (10)

Auto-updated Jul 30, 2026
Patch available.
generic Patch Available

[SECURITY] [DLA 4075-1] linux security update

https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html
generic Patch Available

[SECURITY] [DLA 4076-1] linux-6.1 security update

https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html
generic

dm thin: make get_first_thin use rcu-safe list first function - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/ec037fe8c0d0f6140e3d8a49c7b29cb5582160b8
generic

dm thin: make get_first_thin use rcu-safe list first function - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/cd30a3960433ec2db94b3689752fa3c5df44d649
generic

dm thin: make get_first_thin use rcu-safe list first function - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/cbd0d5ecfa390ac29c5380200147d09c381b2ac6
generic

dm thin: make get_first_thin use rcu-safe list first function - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/80f130bfad1dab93b95683fc39b87235682b8f72
generic

dm thin: make get_first_thin use rcu-safe list first function - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/802666a40c71a23542c43a3f87e3a2d0f4e8fe45
generic

dm thin: make get_first_thin use rcu-safe list first function - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/6b305e98de0d225ccebfb225730a9f560d28ecb0
generic

dm thin: make get_first_thin use rcu-safe list first function - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/12771050b6d059eea096993bf2001da9da9fddff

Patch Availability(31)

Vendor / EcosystemFixed in / PatchReleasedSource
ubuntulinux-tools-oracle-edge (5.15.0.1077.83~20.04.1) @ focal2026-05-21ubuntu
ubuntulinux-tools-oem-24.04b (6.11.0-1017.17) @ noble2026-05-21ubuntu
ubuntulinux-virtual-hwe-24.04-edge (6.11.0-21.21) @ oracular2026-05-21ubuntu
ubuntulinux-tools-lowlatency-hwe-24.04-edge (6.11.0-1011.12~24.04.1) @ noble2026-05-21ubuntu
ubuntulinux-tools-lowlatency-64k (6.11.0-1011.12) @ oracular2026-05-21ubuntu
ubuntulinux-tools-kvm (5.15.0.1076.72) @ jammy2026-05-21ubuntu
ubuntulinux-tools-gcp-edge (5.15.0.1081.90~20.04.1) @ focal2026-05-21ubuntu
ubuntulinux-tools-nvidia-tegra-rt (5.15.0.1033.33) @ jammy2026-05-21ubuntu
ubuntulinux-tools-aws-fips (5.4.0.1142.89) @ focal2026-05-21ubuntu
ubuntulinux-tools-gcp-fips (5.15.0.1079.69) @ jammy2026-05-21ubuntu
ubuntulinux-tools-gcp-fips (5.4.0.1145.87) @ focal2026-05-21ubuntu
ubuntulinux-tools-raspi (6.8.0-1028.32) @ noble2026-05-21ubuntu
ubuntulinux-xilinx-zynqmp-tools-5.4.0-1060 (5.4.0-1060.64) @ focal2026-05-21ubuntu
ubuntulinux-tools-raspi (6.11.0-1010.10) @ oracular2026-05-21ubuntu
ubuntulinux-tools-intel-iotg-edge (5.15.0.1077.83~20.04.1) @ focal2026-05-21ubuntu
ubuntulinux-tools-fips (5.4.0.1116.113) @ focal2026-05-21ubuntu
ubuntulinux-tools-aws-edge (5.4.0.1142.152~18.04.1) @ bionic2026-05-21ubuntu
ubuntulinux-tools-ibm-edge (5.15.0.1074.77~20.04.1) @ focal2026-05-21ubuntu
ubuntulinux-virtual-hwe-18.04-edge (5.4.0.211.206) @ focal2026-05-21ubuntu
ubuntulinux-xilinx-zynqmp-tools-host (5.15.0-1044.48) @ jammy2026-05-21ubuntu
ubuntulinux-tools-iot (5.4.0.1048.46) @ focal2026-05-21ubuntu
ubuntulinux-tools-realtime (5.15.0.1080.83) @ jammy2026-05-21ubuntu
ubuntulinux-tools-realtime (6.8.1-1022.23) @ noble2026-05-21ubuntu
ubuntulinux-tools-aws-lts-20.04 (5.4.0.1142.139) @ focal2026-05-21ubuntu
ubuntulinux-virtual-hwe-20.04-edge (5.15.0.136.147~20.04.1) @ focal2026-05-21ubuntu
ubuntulinux-tools-gke (6.8.0-1025.29) @ noble2026-05-21ubuntu
ubuntulinux-tools-raspi-realtime (6.8.0-2023.24) @ noble2026-05-21ubuntu
ubuntulinux-virtual (6.8.0-60.63) @ noble2026-05-21ubuntu
ubuntulinux-tools-ibm-edge (5.4.0.1090.95~18.04.1) @ bionic2026-05-21ubuntu
ubuntulinux-tools-azure-fde-edge (5.15.0.1086.95~20.04.1.61) @ focal2026-05-21ubuntu
linuxKernel @ 5.4.290osv

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

(25)

Every vendor that published an advisory referencing this CVE — pulled from our cve_vendor_advisories aggregation. Click any row for the vendor's original advisory page.

Data Freshness Timeline

(refreshed 10× in last 7d / 46× 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 148 total refreshes for this CVE.

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

Frequently asked(5)

What is CVE-2025-21664?
CVE-2025-21664 is a medium vulnerability published on January 21, 2025. In the Linux kernel, the following vulnerability has been resolved: dm thin: make getfirstthin use rcu-safe list first function The documentation in rculist.h explains the absence of listemptyrcu() and cautions programmers against relying on a list_empty() -> list_first() sequence in RCU safe code.…
When was CVE-2025-21664 disclosed?
CVE-2025-21664 was first published in the National Vulnerability Database on January 21, 2025, with the most recent update on August 5, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2025-21664 actively exploited?
CVE-2025-21664 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 86.0% of all scored CVEs.
What is the CVSS score of CVE-2025-21664?
CVE-2025-21664 has a CVSS v3 base score of 5.5 (NVD).
How do I remediate CVE-2025-21664?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2025-21664, 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-2025-21664

Explore →

Is Your Infrastructure Affected by CVE-2025-21664?

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