LiveActive security incident?Get immediate response
CVE Record

CVE-2025-21931: hwpoison, memory_hotplug: lock folio before unmap hwpoisoned folio

In the Linux kernel, the following vulnerability has been resolved: hwpoison, memory_hotplug: lock folio before unmap hwpoisoned folio Commit b15c87263a69 ("hwpoison, memory_hotplug: allow hwpoisoned pages to be offlined) add page poison checks in do_migrate_range in order to make offline hwpoisoned page possible by introducing isolate_lru_page and try_to_unmap for hwpoisoned page. However folio lock must be held before calling try_to_unmap. Add it to fix this problem. Warning will be produced if folio is not locked during unmap: ------------[ cut here ]------------ kernel BUG at ./include/linux/swapops.h:400! Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP Modules linked in: CPU: 4 UID: 0 PID: 411 Comm: bash Tainted: G W 6.13.0-rc1-00016-g3c434c7ee82a-dirty #41 Tainted: [W]=WARN Hardware name: QEMU QEMU Virtual Machine, BIOS 0.0.0 02/06/2015 pstate: 40400005 (nZcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : try_to_unmap_one+0xb08/0xd3c lr : try_to_unmap_one+0x3dc/0xd3c Call trace: try_to_unmap_one+0xb08/0xd3c (P) try_to_unmap_one+0x3dc/0xd3c (L) rmap_walk_anon+0xdc/0x1f8 rmap_walk+0x3c/0x58 try_to_unmap+0x88/0x90 unmap_poisoned_folio+0x30/0xa8 do_migrate_range+0x4a0/0x568 offline_pages+0x5a4/0x670 memory_block_action+0x17c/0x374 memory_subsys_offline+0x3c/0x78 device_offline+0xa4/0xd0 state_store+0x8c/0xf0 dev_attr_store+0x18/0x2c sysfs_kf_write+0x44/0x54 kernfs_fop_write_iter+0x118/0x1a8 vfs_write+0x3a8/0x4bc ksys_write+0x6c/0xf8 __arm64_sys_write+0x1c/0x28 invoke_syscall+0x44/0x100 el0_svc_common.constprop.0+0x40/0xe0 do_el0_svc+0x1c/0x28 el0_svc+0x30/0xd0 el0t_64_sync_handler+0xc8/0xcc el0t_64_sync+0x198/0x19c Code: f9407be0 b5fff320 d4210000 17ffff97 (d4210000) ---[ end trace 0000000000000000 ]---

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

This Linux kernel flaw can crash affected systems when handling a rare memory-management path: offlining a hardware-poisoned memory page. The available sources describe a kernel BUG/Oops, which points mainly to availability risk. There is no evidence in the bundle of active exploitation or remote attackability.

Executive priority

Handle through normal kernel patch governance, with higher priority for virtualization, cloud, high-availability, or hardware-error-prone systems. Current evidence supports moderate urgency: availability impact is credible, but the bundle does not show active exploitation, remote reachability, or privilege escalation.

Technical view

The issue is in hwpoison and memory_hotplug handling. The kernel attempted try_to_unmap on a hwpoisoned folio without first holding the folio lock, violating a required locking precondition and triggering a BUG/Oops during memory offlining. The resolved change adds the folio lock before unmapping.

Likely exposure

Exposure appears limited to Linux systems running affected kernel versions or downstream kernels containing the vulnerable memory hotplug and hwpoison code path. Systems that use memory offlining, memory hotplug, or hardware-poison handling deserve closer review. Product and distribution backports must be checked because source commit ranges alone may not match packaged kernels.

Exploitation context

The source bundle does not show KEV listing, public exploitation, or a complete exploitation path. The demonstrated failure occurs during memory offlining of a hwpoisoned page and results in a kernel Oops. Treat this as a plausible local availability issue until vendor advisories provide stronger impact details.

Researcher notes

Key evidence is the upstream kernel description and stable commit references. The crash trace reaches try_to_unmap via unmap_poisoned_folio, do_migrate_range, and offline_pages. Impact details remain narrow in the public bundle; downstream vendor advisories are needed to confirm affected packaged kernels and operational severity.

Mitigation direction

  • Update to a vendor kernel containing the referenced stable fixes.
  • Review Linux distribution advisories for CVE-2025-21931 coverage.
  • Prioritize systems using memory hotplug, memory offlining, or hwpoison handling.
  • Plan reboot or live-patching according to vendor kernel guidance.
  • Track Debian LTS and other distro advisories for backported fixes.

Validation and detection

  • Inventory running Linux kernel versions across affected fleets.
  • Compare vendor kernel changelogs against CVE-2025-21931 and referenced commits.
  • Confirm whether memory hotplug or hwpoison workflows are enabled or used.
  • Review kernel logs for BUG/Oops events during memory offline operations.
  • After remediation, verify systems booted into the patched kernel.
Prepared
Confidence
medium
Sources
8

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2025-21931 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
1ADP providers
7Source links

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CVECVE Program Container
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinuxb15c87263a69272423771118c653e9a1d0672caa, b15c87263a69272423771118c653e9a1d0672caa, b15c87263a69272423771118c653e9a1d0672caa, b15c87263a69272423771118c653e9a1d0672caa, b15c87263a69272423771118c653e9a1d0672caa, 85ef35ab972b7484f41c3bb2bbc79de212e19129, 060853fdd434ce620dd1dd7619ede834bd33b9d0, cb1206e85df291fefde27401190329e26996c54c, 2c25071bed4b1f9c4cfb10a7914847d7069794bf, 2c87072a3bf9bbcd747618bb2ccc3cd0da181db6, a2b977e3d9e4298d28ebe5cfff9e0859b74a7ac7, 3.16.65, 4.4.170, 4.9.150, 4.14.93, 4.19.15, 4.20.2unaffected
LinuxLinux5.0, 0, 6.1.140, 6.6.92, 6.12.19, 6.13.7, 6.14affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.