CVE-2023-52489

MEDIUMNVD 4.74.7
EchelonGraph scoreMEDIUM confidence

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

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

A fix is available — apply it.

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

mm/sparsemem: fix race in accessing memory_section->usage

The below race is observed on a PFN which falls into the device memory region with the system memory configuration where PFN's are such that [ZONE_NORMAL ZONE_DEVICE ZONE_NORMAL]. Since normal zone start and end pfn contains the device memory PFN's as well, the compaction triggered will try on the device memory PFN's too though they end up in NOP(because pfn_to_online_page() returns NULL for ZONE_DEVICE memory sections). When from other core, the section mappings are being removed for the ZONE_DEVICE region, that the PFN in question belongs to, on which compaction is currently being operated is resulting into the kernel crash with CONFIG_SPASEMEM_VMEMAP enabled. The crash logs can be seen at [1].

compact_zone() memunmap_pages ------------- --------------- __pageblock_pfn_to_page ...... (a)pfn_valid(): valid_section()//return true (b)__remove_pages()-> sparse_remove_section()-> section_deactivate(): [Free the array ms->usage and set ms->usage = NULL] pfn_section_valid() [Access ms->usage which is NULL]

NOTE: From the above it can be said that the race is reduced to between the pfn_valid()/pfn_section_valid() and the section deactivate with SPASEMEM_VMEMAP enabled.

The commit b943f045a9af("mm/sparse: fix kernel crash with pfn_section_valid check") tried to address the same problem by clearing the SECTION_HAS_MEM_MAP with the expectation of valid_section() returns false thus ms->usage is not accessed.

Fix this issue by the below steps:

a) Clear SECTION_HAS_MEM_MAP before freeing the ->usage.

b) RCU protected read side critical section will either return NULL when SECTION_HAS_MEM_MAP is cleared or can successfully access ->usage.

c) Free the ->usage with kfree_rcu() and set ms->usage = NULL. No attempt will be made to access ->usage after this as the SECTION_HAS_MEM_MAP is cleared thus valid_section() return false.

Thanks to David/Pavan for their inputs on this patch.

[1] https://lore.kernel.org/linux-mm/994410bb-89aa-d987-1f50-f514903c55aa@quicinc.com/

On Snapdragon SoC, with the mentioned memory configuration of PFN's as [ZONE_NORMAL ZONE_DEVICE ZONE_NORMAL], we are able to see bunch of issues daily while testing on a device farm.

For this particular issue below is the log. Though the below log is not directly pointing to the pfn_section_valid(){ ms->usage;}, when we loaded this dump on T32 lauterbach tool, it is pointing.

[ 540.578056] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 [ 540.578068] Mem abort info: [ 540.578070] ESR = 0x0000000096000005 [ 540.578073] EC = 0x25: DABT (current EL), IL = 32 bits [ 540.578077] SET = 0, FnV = 0 [ 540.578080] EA = 0, S1PTW = 0 [ 540.578082] FSC = 0x05: level 1 translation fault [ 540.578085] Data abort info: [ 540.578086] ISV = 0, ISS = 0x00000005 [ 540.578088] CM = 0, WnR = 0 [ 540.579431] pstate: 82400005 (Nzcv daif +PAN -UAO +TCO -DIT -SSBSBTYPE=--) [ 540.579436] pc : __pageblock_pfn_to_page+0x6c/0x14c [ 540.579454] lr : compact_zone+0x994/0x1058 [ 540.579460] sp : ffffffc03579b510 [ 540.579463] x29: ffffffc03579b510 x28: 0000000000235800 x27:000000000000000c [ 540.579470] x26: 0000000000235c00 x25: 0000000000000068 x24:ffffffc03579b640 [ 540.579477] x23: 0000000000000001 x22: ffffffc03579b660 x21:0000000000000000 [ 540.579483] x20: 0000000000235bff x19: ffffffdebf7e3940 x18:ffffffdebf66d140 [ 540.579489] x17: 00000000739ba063 x16: 00000000739ba063 x15:00000000009f4bff [ 540.579495] x14: 0000008000000000 x13: 0000000000000000 x12:0000000000000001 [ 540.579501] x11: 0000000000000000 x10: 0000000000000000 x9 :ffffff897d2cd440 [ 540.579507] x8 : 0000000000000000 x7 : 0000000000000000 x6 :ffffffc03579b5b4 [ 540.579512] x5 : 0000000000027f25 x4 : ffffffc03579b5b8 x3 :0000000000000 ---truncated---

CVSS v3
4.7
EG Score
4.7(medium)
EG Risk
EPSS
21.5%
KEV
Not listed

Published

March 11, 2024

Last Modified

February 14, 2025

Patch Availability(22)

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.

Additional Vendor Advisories

(15)

Data Freshness Timeline

(refreshed 11× 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.

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

Frequently asked(5)

What is CVE-2023-52489?
CVE-2023-52489 is a medium vulnerability published on March 11, 2024. In the Linux kernel, the following vulnerability has been resolved: mm/sparsemem: fix race in accessing memory_section->usage The below race is observed on a PFN which falls into the device memory region with the system memory configuration where PFN's are such that [ZONENORMAL ZONEDEVICE…
When was CVE-2023-52489 disclosed?
CVE-2023-52489 was first published in the National Vulnerability Database on March 11, 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-52489 actively exploited?
CVE-2023-52489 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 21.5% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2023-52489?
CVE-2023-52489 has a CVSS v3 base score of 4.7 (NVD).
How do I remediate CVE-2023-52489?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2023-52489, 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-52489

Explore →

Is Your Infrastructure Affected by CVE-2023-52489?

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