Skip to content
Fencer Vulns
medium 5.5

CVE-2025-21931 json

hwpoison, memory_hotplug: lock folio before unmap hwpoisoned folio

published 2025-04-01 19 mo ago modified 2026-06-17 4 mo ago also EUVD-2025-9390

cvss
5.5
version 3.1, NVD
cisa kev
Not listed
not in CISA's catalog
epss
0.2%
EPSS 0.2% chance of exploitation in 30 days, percentile 4%
public exploits
0
none known

Summary

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 ]---

Patch / fix

  • Linux Linux 3.17, 4.5, 4.10, 4.15, 4.20, 4.21, 6.1.140, 6.6.92, 6.12.19, 6.13.7, 6.14
  • linux Debian 12 6.1.140-1
  • linux Debian 14, Debian 13 6.12.19-1

debian advisories DEBIAN-CVE-2025-21931

  • linux Ubuntu 24.04 LTS 6.8.0-100.100
  • linux-aws Ubuntu 24.04 LTS 6.8.0-1046.49
  • linux-gcp Ubuntu 24.04 LTS 6.8.0-1047.50
  • linux-gke Ubuntu 24.04 LTS 6.8.0-1043.48
  • linux-ibm Ubuntu 24.04 LTS 6.8.0-1044.44
  • linux-azure Ubuntu 24.04 LTS 6.8.0-1046.52
  • linux-gkeop Ubuntu 24.04 LTS 6.8.0-1030.33
  • linux-raspi Ubuntu 24.04 LTS 6.8.0-1047.51

ubuntu advisories UBUNTU-CVE-2025-21931

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • kernel RHEL 10.1 6.12.0-124.8.1.el10_1
  • rv RHEL 10.1 6.12.0-124.8.1.el10_1
  • perf RHEL 10.1 6.12.0-124.8.1.el10_1
  • rtla RHEL 10.1 6.12.0-124.8.1.el10_1
  • libperf RHEL 10.1 6.12.0-124.8.1.el10_1
  • kernel-rt RHEL 10.1 6.12.0-124.8.1.el10_1
  • kernel-64k RHEL 10.1 6.12.0-124.8.1.el10_1
  • kernel-core RHEL 10.1 6.12.0-124.8.1.el10_1

red hat advisories RHSA-2025:20095

  • kernel-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.20.3.1
  • kernel-syms-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.20.3.1
  • kernel-source-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.20.3.1
  • kernel-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.39.1
  • kernel-syms-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.39.1
  • kernel-rt_debug Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.39.1
  • kernel-source-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.39.1
  • kernel-64kb SLE Module for Basesystem 15 SP7 6.4.0-150700.53.3.1

suse advisories SUSE-SU-2025:01967-1SUSE-SU-2025:01964-1SUSE-SU-2025:01951-1SUSE-SU-2025:01919-1SUSE-SU-2025:01707-1SUSE-SU-2025:20344-1

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2025-21931 updated cvss 3.3

kernel: hwpoison, memory_hotplug: lock folio before unmap hwpoisoned folio

  • Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more
    affected: no fix planned “Out of support scope”
  • Red Hat Enterprise Linux AppStream (v. 10) rv 6.12.0-124.8.1.el10_1, perf 6.12.0-124.8.1.el10_1, rtla 6.12.0-124.8.1.el10_1, python3-perf 6.12.0-124.8.1.el10_1, kernel-devel-matched 6.12.0-124.8.1.el10_1, kernel-64k-devel-matched 6.12.0-124.8.1.el10_1, +7 more Red Hat Enterprise Linux BaseOS (v. 10) kernel 6.12.0-124.8.1.el10_1, kernel-64k 6.12.0-124.8.1.el10_1, kernel-core 6.12.0-124.8.1.el10_1, kernel-tools 6.12.0-124.8.1.el10_1, kernel-modules 6.12.0-124.8.1.el10_1, kernel-64k-core 6.12.0-124.8.1.el10_1, +28 more Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) libperf 6.12.0-124.8.1.el10_1, kernel-debuginfo-common-s390x 6.12.0-124.8.1.el10_1, kernel-debuginfo-common-x86_64 6.12.0-124.8.1.el10_1, kernel-debuginfo-common-aarch64 6.12.0-124.8.1.el10_1, kernel-debuginfo-common-ppc64le 6.12.0-124.8.1.el10_1 Red Hat Enterprise Linux Real Time (v. 10) kernel-rt 6.12.0-124.8.1.el10_1, kernel-rt-64k 6.12.0-124.8.1.el10_1, kernel-rt-core 6.12.0-124.8.1.el10_1, kernel-rt-modules 6.12.0-124.8.1.el10_1, kernel-rt-64k-core 6.12.0-124.8.1.el10_1, kernel-rt-debug-core 6.12.0-124.8.1.el10_1, +14 more Red Hat Enterprise Linux Real Time for NFV (v. 10) kernel-rt 6.12.0-124.8.1.el10_1, kernel-rt-core 6.12.0-124.8.1.el10_1, kernel-rt-modules 6.12.0-124.8.1.el10_1, kernel-rt-debug-core 6.12.0-124.8.1.el10_1, kernel-rt-modules-core 6.12.0-124.8.1.el10_1, kernel-rt-debug-modules 6.12.0-124.8.1.el10_1, +4 more
    fixed: vendor fix RHSA-2025:20095
  • Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

Exploit prediction

0.16% chance of exploitation in the next 30 days, higher than 4% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
NVD 3.1 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Affected products

  • Linux Linux

Classification

Weakness
Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.