CVE-2025-39989

MEDIUMNVD 5.55.5
EchelonGraph scoreMEDIUM confidence

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

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
Trending — 3 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:

x86/mce: use is_copy_from_user() to determine copy-from-user context

Patch series "mm/hwpoison: Fix regressions in memory failure handling", v4.

1. What am I trying to do:

This patchset resolves two critical regressions related to memory failure handling that have appeared in the upstream kernel since version 5.17, as compared to 5.10 LTS.

  • copyin case: poison found in user page while kernel copying from user space
  • instr case: poison found while instruction fetching in user space

2. What is the expected outcome and why

  • For copyin case:

Kernel can recover from poison found where kernel is doing get_user() or copy_from_user() if those places get an error return and the kernel return -EFAULT to the process instead of crashing. More specifily, MCE handler checks the fixup handler type to decide whether an in kernel #MC can be recovered. When EX_TYPE_UACCESS is found, the PC jumps to recovery code specified in _ASM_EXTABLE_FAULT() and return a -EFAULT to user space.

  • For instr case:

If a poison found while instruction fetching in user space, full recovery is possible. User process takes #PF, Linux allocates a new page and fills by reading from storage.

3. What actually happens and why

  • For copyin case: kernel panic since v5.17

Commit 4c132d1d844a ("x86/futex: Remove .fixup usage") introduced a new extable fixup type, EX_TYPE_EFAULT_REG, and later patches updated the extable fixup type for copy-from-user operations, changing it from EX_TYPE_UACCESS to EX_TYPE_EFAULT_REG. It breaks previous EX_TYPE_UACCESS handling when posion found in get_user() or copy_from_user().

  • For instr case: user process is killed by a SIGBUS signal due to #CMCI
and #MCE race

When an uncorrected memory error is consumed there is a race between the CMCI from the memory controller reporting an uncorrected error with a UCNA signature, and the core reporting and SRAR signature machine check when the data is about to be consumed.

Background: why *UN*corrected errors tied to *C*MCI in Intel platform [1]

Prior to Icelake memory controllers reported patrol scrub events that detected a previously unseen uncorrected error in memory by signaling a broadcast machine check with an SRAO (Software Recoverable Action Optional) signature in the machine check bank. This was overkill because it's not an urgent problem that no core is on the verge of consuming that bad data. It's also found that multi SRAO UCE may cause nested MCE interrupts and finally become an IERR.

Hence, Intel downgrades the machine check bank signature of patrol scrub from SRAO to UCNA (Uncorrected, No Action required), and signal changed to #CMCI. Just to add to the confusion, Linux does take an action (in uc_decode_notifier()) to try to offline the page despite the UC*NA* signature name.

Background: why #CMCI and #MCE race when poison is consuming in

Intel platform [1]

Having decided that CMCI/UCNA is the best action for patrol scrub errors, the memory controller uses it for reads too. But the memory controller is executing asynchronously from the core, and can't tell the difference between a "real" read and a speculative read. So it will do CMCI/UCNA if an error is found in any read.

Thus:

1) Core is clever and thinks address A is needed soon, issues a speculative read.

2) Core finds it is going to use address A soon after sending the read request

3) The CMCI from the memory controller is in a race with MCE from the core that will soon try to retire the load from address A.

Quite often (because speculation has got better) the CMCI from the memory controller is delivered before the core is committed to the instruction reading address A, so the interrupt is taken, and Linux offlines the page (marking it as poison).

Why user process is killed for instr case

Commit 046545a661af ("mm/hwpoison: fix error page recovered but reported "not ---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
14%
KEV
Not listed

Published

April 18, 2025

Last Modified

November 6, 2025

Patch Availability(24)

Vendor / EcosystemFixed in / PatchReleasedSource
ubuntulinux-virtual-hwe-24.04-edge (6.14.0-22.22) @ plucky2026-05-30ubuntu
ubuntulinux-tools-azure (6.14.0-1007.7) @ plucky2026-05-30ubuntu
ubuntulinux-virtual-hwe-24.04-edge (6.11.0-28.28) @ oracular2026-05-30ubuntu
ubuntulinux-tools-oem-24.04b (6.11.0-1024.24) @ noble2026-05-30ubuntu
ubuntulinux-tools-oracle-64k (6.14.0-1007.7) @ plucky2026-05-30ubuntu
ubuntulinux-tools-lowlatency-64k (6.11.0-1015.16) @ oracular2026-05-30ubuntu
ubuntulinux-tools-azure-6.11 (6.11.0-1018.18) @ oracular2026-05-30ubuntu
ubuntulinux-virtual-6.8 (6.8.0-100.100) @ noble2026-05-30ubuntu
ubuntulinux-tools-gcp-edge (6.8.0-1047.50~22.04.2) @ jammy2026-05-30ubuntu
ubuntulinux-tools-realtime-hwe-22.04 (6.8.1-1041.42~22.04.1) @ jammy2026-05-30ubuntu
ubuntulinux-tools-realtime-6.8.1 (6.8.1-1041.42) @ noble2026-05-30ubuntu
ubuntulinux-tools-fips-6.8 (6.8.0-100.100+fips1) @ noble2026-05-30ubuntu
ubuntulinux-tools-oracle-edge (6.8.0-1043.44~22.04.1) @ jammy2026-05-30ubuntu
ubuntulinux-tools-gcp-fips-6.8 (6.8.0-1047.50+fips1) @ noble2026-05-30ubuntu
ubuntulinux-virtual-hwe-22.04-edge (6.8.0-100.100~22.04.1) @ jammy2026-05-30ubuntu
ubuntulinux-tools-gke-64k-6.8 (6.8.0-1043.48) @ noble2026-05-30ubuntu
ubuntulinux-tools-lowlatency-hwe-20.04-edge (6.8.0-100.100.1) @ noble2026-05-30ubuntu
ubuntulinux-tools-nvidia-lowlatency-64k-6.8 (6.8.0-1046.49.1) @ noble2026-05-30ubuntu
ubuntulinux-tools-ibm-lts-24.04 (6.8.0-1044.44) @ noble2026-05-30ubuntu
ubuntulinux-xilinx-zynqmp (6.8.0.1023.24) @ noble2026-05-30ubuntu
ubuntulinux-tools-azure-edge (6.8.0-1051.57~22.04.1) @ jammy2026-05-30ubuntu
ubuntulinux-tools-azure-lts-24.04 (6.8.0-1046.52) @ noble2026-05-30ubuntu
ubuntulinux-tools-azure-fips-6.8 (6.8.0-1046.52+fips1) @ noble2026-05-30ubuntu
linuxKernel @ 6.6.89osv

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

(24)

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.

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

Frequently asked(5)

What is CVE-2025-39989?
CVE-2025-39989 is a medium vulnerability published on April 18, 2025. In the Linux kernel, the following vulnerability has been resolved: x86/mce: use iscopyfrom_user() to determine copy-from-user context Patch series "mm/hwpoison: Fix regressions in memory failure handling", v4. 1. What am I trying to do: This patchset resolves two critical regressions related to…
When was CVE-2025-39989 disclosed?
CVE-2025-39989 was first published in the National Vulnerability Database on April 18, 2025, with the most recent update on November 6, 2025. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2025-39989 actively exploited?
CVE-2025-39989 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 85.9% of all scored CVEs.
What is the CVSS score of CVE-2025-39989?
CVE-2025-39989 has a CVSS v3 base score of 5.5 (NVD).
How do I remediate CVE-2025-39989?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2025-39989, 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-39989

Explore →

Is Your Infrastructure Affected by CVE-2025-39989?

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