Description
In the Linux kernel, the following vulnerability has been resolved:
powerpc/64s: Fix unmap race with PMD migration entries
The following race is possible with migration swap entries or
device-private THP entries. e.g. when move_pages is called on a PMD THP
page, then there maybe an intermediate state, where PMD entry acts as
a migration swap entry (pmd_present() is true). Then if an munmap
happens at the same time, then this VM_BUG_ON() can happen in
pmdp_huge_get_and_clear_full().
This patch fixes that.
Thread A: move_pages() syscall
add_folio_for_migration()
mmap_read_lock(mm)
folio_isolate_lru(folio)
mmap_read_unlock(mm)
do_move_pages_to_node()
migrate_pages()
try_to_migrate_one()
spin_lock(ptl)
set_pmd_migration_entry()
pmdp_invalidate() # PMD: _PAGE_INVALID | _PAGE_PTE | pfn
set_pmd_at() # PMD: migration swap entry (pmd_present=0)
spin_unlock(ptl)
[page copy phase] # <--- RACE WINDOW -->
Thread B: munmap()
mmap_write_downgrade(mm)
unmap_vmas() -> zap_pmd_range()
zap_huge_pmd()
__pmd_trans_huge_lock()
pmd_is_huge(): # !pmd_present && !pmd_none -> TRUE (swap entry)
pmd_lock() -> # spin_lock(ptl), waits for Thread A to release ptl
pmdp_huge_get_and_clear_full()
VM_BUG_ON(!pmd_present(*pmdp)) # HITS!
[ 287.738700][ T1867] ------------[ cut here ]------------
[ 287.743843][ T1867] kernel BUG at arch/powerpc/mm/book3s64/pgtable.c:187!
cpu 0x0: Vector: 700 (Program Check) at [c00000044037f4f0]
pc: c000000000094ca4: pmdp_huge_get_and_clear_full+0x6c/0x23c
lr: c000000000645dec: zap_huge_pmd+0xb0/0x868
sp: c00000044037f790
msr: 800000000282b033
current = 0xc0000004032c1a00
paca = 0xc000000004fe0000 irqmask: 0x03 irq_happened: 0x09
pid = 1867, comm = a.out
kernel BUG at :187!
Linux version 6.19.0-12136-g14360d4f917c-dirty (powerpc64le-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #27 SMP PREEMPT Sun Feb 22 10:38:56 IST 2026
enter ? for help
[link register ] c000000000645dec zap_huge_pmd+0xb0/0x868
[c00000044037f790] c00000044037f7d0 (unreliable)
[c00000044037f7d0] c000000000645dcc zap_huge_pmd+0x90/0x868
[c00000044037f840] c0000000005724cc unmap_page_range+0x176c/0x1f40
[c00000044037fa00] c000000000572ea0 unmap_vmas+0xb0/0x1d8
[c00000044037fa90] c0000000005af254 unmap_region+0xb4/0x128
[c00000044037fb50] c0000000005af400 vms_complete_munmap_vmas+0x138/0x310
[c00000044037fbe0] c0000000005b0f1c do_vmi_align_munmap+0x1ec/0x238
[c00000044037fd30] c0000000005b3688 __vm_munmap+0x170/0x1f8
[c00000044037fdf0] c000000000587f74 sys_munmap+0x2c/0x40
[c00000044037fe10] c000000000032668 system_call_exception+0x128/0x350
[c00000044037fe50] c00000000000d05c system_call_vectored_common+0x15c/0x2ec
---- Exception: 3000 (System Call Vectored) at 0000000010064a2c
SP (7fff9b1ee9c0) is in userspace
0:mon> zh
commit a30b48bf1b24 ("mm/migrate_device: implement THP migration of zone device pages"),
enabled migration for device-private PMD entries. Hence this is one
other path where this warning could get trigger from.
------------[ cut here ]------------
WARNING: arch/powerpc/mm/book3s64/hash_pgtable.c:199 at hash__pmd_hugepage_update+0x48/0x284, CPU#3: hmm-tests/1905
Modules linked in: test_hmm
CPU: 3 UID: 0 PID: 1905 Comm: hmm-tests Tainted: G B W L N 7.0.0-rc1-01438-g7e2f0ee7581c #21 PREEMPT
Tainted: [B]=BAD_PAGE, [W]=WARN, [L]=SOFTLOCKUP, [N]=TEST
Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) 0x801200 0xf000006 of:SLOF,git-ee03ae pSeries
NIP [c000000000096b70] hash__pmd_hugepage_update+0x48/0x284
LR [c000000000096e7c] hash__pmdp_huge_get_and_clear+0xd0/0xd4
Call Trace:
[c000000604707670] [c000000004e102b8] 0xc000000004e102b8 (unreliable)
[c000000604707700] [c00000000064ec3c] set_pmd_migration_entry+0x414/0x498
[c000000604707760] [c00000000063e5a4] migrate_vma_col
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 5.8 | 6.1.191 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 7.0.10-1 | — |
| Debian 13 | linux | 6.12.115-2 | — |
| Debian 12 | linux | No fix yet | — |
| Debian 12 | linux-6.12 | 6.12.115-2~deb12u1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 24.04 LTS | linux-bluefield | No fix yet | — |
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | No fix yet | — |
| Ubuntu 26.04 LTS | linux | 7.0.0-28.28 | USN-8566-1 |
| Ubuntu 26.04 LTS | linux-aws +2 | 7.0.0-1009.9 | USN-8618-1, USN-8603-1, USN-8568-1 |
| Ubuntu 26.04 LTS | linux-gcp +1 | 7.0.0-1008.8 | USN-8593-1, USN-8566-1 |
| Ubuntu 26.04 LTS | linux-gke | 7.0.0-1003.4 | USN-8566-1 |
| Ubuntu 26.04 LTS | linux-ibm +1 | 7.0.0-1010.10 | USN-8603-1, USN-8593-1 |
| Ubuntu 26.04 LTS | linux-nvidia | 7.0.0-1016.16 | USN-8663-1 |
| Ubuntu 26.04 LTS | linux-nvidia-bos | 7.0.0-2016.16 | USN-8664-1 |
| Ubuntu 26.04 LTS | linux-raspi | 7.0.0-1015.15 | USN-8618-1 |
| Ubuntu 26.04 LTS | linux-riscv +1 | 7.0.0-28.28.1 | USN-8566-1 |
| Ubuntu 25.10 | linux +8 | No fix yet | — |
| Ubuntu 24.04 LTS | linux +44 | No fix yet | — |
| Ubuntu 24.04 LTS | linux-azure-7.0 | 7.0.0-1014.14~24.04.1 | USN-8728-2 |
| Ubuntu 24.04 LTS | linux-azure-fde-7.0 | 7.0.0-1013.13~24.04.1 | — |
| Ubuntu 24.04 LTS | linux-gcp-7.0 +1 | 7.0.0-1011.11~24.04.1 | USN-8728-3, USN-8728-1 |
| Ubuntu 24.04 LTS | linux-hwe-7.0 | 7.0.0-28.28~24.04.1 | USN-8569-1 |
| Ubuntu 24.04 LTS | linux-nvidia-7.0 | 7.0.0-1016.16~24.04.1 | USN-8663-1 |
| Ubuntu 24.04 LTS | linux-riscv-7.0 | 7.0.0-28.28.1~24.04.3 | — |
Show 10 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 22.04 LTS | linux +59 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime +3 | No fix yet | — |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime +2 | No fix yet | — |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux-aws-5.15 +10 | No fix yet | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP7 | kernel-64kb +5 | 6.4.0-150700.53.87.3 | SUSE-SU-2026:4935-1 |
| SLES 15 SP7 | kernel-default-base | 6.4.0-150700.53.87.3.150700.17.49.2 | SUSE-SU-2026:4935-1 |
| SLES 15 SP7 | kernel-obs-build | 6.4.0-150700.53.87.2 | SUSE-SU-2026:4935-1 |
| SLES 15 SP7 | kernel-syms | 6.4.0-150700.53.87.1 | SUSE-SU-2026:4935-1 |
Show 7 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 16.0 | kernel-64kb +8 | 6.12.0-160000.40.1 | SUSE-SU-2026:24446-1 |
| SLES for SAP 16.0 | kernel-default-base | 6.12.0-160000.40.1.160000.2.29 | SUSE-SU-2026:24446-1 |
| SLES 16.0 | kernel-64kb +8 | 6.12.0-160000.40.1 | SUSE-SU-2026:24446-1, SUSE-SU-2026:24437-1 |
| SLES 16.0 | kernel-default-base | 6.12.0-160000.40.1.160000.2.29 | SUSE-SU-2026:24446-1 |
| SLE Micro 6.2 | kernel-default-base | 6.12.0-160000.40.1.160000.2.29 | SUSE-SU-2026:24422-1 |
| SLE Micro 6.2 | kernel-rt +5 | 6.12.0-160000.40.1 | SUSE-SU-2026:24422-1, SUSE-SU-2026:24386-1 |
| SLE Micro 6.1 | kernel-default-base | 6.4.0-159998.54.1.159998.21.39 | SUSE-SU-2026:24379-1 |
| SLE Micro 6.1 | kernel-rt +4 | 6.4.0-159998.54.1 | SUSE-SU-2026:24553-1, SUSE-SU-2026:24379-1 |
| SLE Micro 6.0 | kernel-default-base | 6.4.0-159998.54.1.159998.21.40 | SUSE-SU-2026:24371-1 |
| SLE Micro 6.0 | kernel-rt +4 | 6.4.0-159998.54.1 | SUSE-SU-2026:24473-1, SUSE-SU-2026:24371-1 |
| SLE Live Patching 15 SP7 | kernel-default | 6.4.0-150700.53.87.3 | SUSE-SU-2026:4935-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7-RT_Update_22 | 1-150700.1.3.1 | SUSE-SU-2026:4940-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7_Update_23 | 1-150700.15.3.2 | SUSE-SU-2026:4935-1 |
| SUSE Real Time Module 15 SP7 | kernel-rt +2 | 6.4.0-150700.7.81.1 | SUSE-SU-2026:4940-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 16.0 | kernel-default-base | 6.12.0-160000.40.1.160000.2.29 | openSUSE-SU-2026:22167-1 |
| openSUSE Leap 16.0 | kernel-rt +11 | 6.12.0-160000.40.1 | openSUSE-SU-2026:22167-1 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | kernel | No fix yet | — |
Advisories 23
- WID-SEC-2026-2077 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 12, 2026
- USN-8728-1 linux-gcp-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8728-2 linux-azure-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8728-3 linux-oracle-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 12, 2026
- USN-8593-1 linux-ibm, linux-oracle vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- USN-8664-1 linux-nvidia-bos vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- USN-8603-1 linux-azure, linux-azure-fde vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- USN-8663-1 linux-nvidia, linux-nvidia-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- USN-8618-1 linux-aws, linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Nov 9, 2026
- SUSE-SU-2026:24553-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Nov 7, 2026
- USN-8566-1 linux, linux-gcp, linux-gke, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 7, 2026
- USN-8569-1 linux-hwe-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 7, 2026
- USN-8568-1 linux-oem-7.0 vulnerabilities Ubuntu Security Notices (USN) · Nov 7, 2026
- SUSE-SU-2026:24473-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Nov 4, 2026
- SUSE-SU-2026:24437-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Nov 1, 2026
- SUSE-SU-2026:24446-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Nov 1, 2026
- SUSE-SU-2026:4940-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Oct 31, 2026
- SUSE-SU-2026:4935-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Oct 31, 2026
- SUSE-SU-2026:24422-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Oct 30, 2026
- SUSE-SU-2026:24386-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Oct 30, 2026
- SUSE-SU-2026:24379-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Oct 27, 2026
- SUSE-SU-2026:24371-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Oct 27, 2026
- openSUSE-SU-2026:22167-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Oct 25, 2026
References
- https://git.kernel.org/stable/c/3d4999bfbcbc5b801bfcf482c567380dd26ad268
- https://git.kernel.org/stable/c/6f571bf37da84ab822bf22341d48655312aaee20
- https://git.kernel.org/stable/c/5c8dd49f4a857aa40c4a8694930509d159feae24
- https://git.kernel.org/stable/c/09207dc57ab4cb8967e6cad55a37e15ff8523d41
- https://git.kernel.org/stable/c/829367e55012c053738ebe7db20c4a90d6609ece
- https://git.kernel.org/stable/c/bbcbf045d6c778e82b47a35fc8728387708e9a3d