mm: prevent poison consumption when splitting THP
In the Linux kernel, the following vulnerability has been resolved: mm: prevent poison consumption when splitting THP When performing memory error injection on a THP (Transparent Huge Page) mapped to userspace on an x86 server, the kernel panics with the following trace. The expected behavior is to terminate the affected process instead of panicking the kernel, as the x86 Machine Check code can recover from an in-userspace #MC. mce: [Hardware Error]: CPU 0: Machine Check Exception: f Bank 3: bd80000000070134 mce: [Hardware Error]: RIP 10:<ffffffff8372f8bc> {memchr_inv+0x4c/0xf0} mce: [Hardware Error]: TSC afff7bbff88a ADDR 1d301b000 MISC 80 PPIN 1e741e77539027db mce: [Hardware Error]: PROCESSOR 0:d06d0 TIME 1758093249 SOCKET 0 APIC 0 microcode 80000320 mce: [Hardware Error]: Run the above through 'mcelog --ascii' mce: [Hardware Error]: Machine check: Data load in unrecoverable area of kernel Kernel panic - not syncing: Fatal local machine check The root cause of this panic is that handling a memory failure triggered by an in-userspace #MC necessitates splitting the THP. The splitting process employs a mechanism, implemented in try_to_map_unused_to_zeropage(), which reads the pages in the THP to identify zero-filled pages. However, reading the pages in the THP results in a second in-kernel #MC, occurring before the initial memory_failure() completes, ultimately leading to a kernel panic. See the kernel panic call trace on the two #MCs. First Machine Check occurs // [1] memory_failure() // [2] try_to_split_thp_page() split_huge_page() split_huge_page_to_list_to_order() __folio_split() // [3] remap_page() remove_migration_ptes() remove_migration_pte() try_to_map_unused_to_zeropage() // [4] memchr_inv() // [5] Second Machine Check occurs // [6] Kernel panic [1] Triggered by accessing a hardware-poisoned THP in userspace, which is typically recoverable by terminating the affected process. [2] Call folio_set_has_hwpoisoned() before try_to_split_thp_page(). [3] Pass the RMP_USE_SHARED_ZEROPAGE remap flag to remap_page(). [4] Try to map the unused THP to zeropage. [5] Re-access pages in the hw-poisoned THP in the kernel. [6] Triggered in-kernel, leading to a panic kernel. In Step[2], memory_failure() sets the poisoned flag on the page in the THP by TestSetPageHWPoison() before calling try_to_split_thp_page(). As suggested by David Hildenbrand, fix this panic by not accessing to the poisoned page in the THP during zeropage identification, while continuing to scan unaffected pages in the THP for possible zeropage mapping. This prevents a second in-kernel #MC that would cause kernel panic in Step[4]. Thanks to Andrew Zaborowski for his initial work on fixing this issue.
- Yayın
- 4 Ara 2025
- Güncelleme
- 17 Haz 2026
- EPSS
- %0,2 · 11. yüzdelik
- CWE
- —
Takip etmek için giriş yap · Takip ettiğin kayıt KEV’e girer, istismarı çıkar ya da güncellenirse bildirim alırsın.
Rapor araçları
Aksiyon skoru
0
İzleyin
Şimdilik düşük öncelik.
- CVSS
- 0 / 40 · —
- CISA KEV
- 0 / 30 · Listede değil
- EPSS
- 0 / 30 · %0,2
Noroxi analizi
Bu kayıt için henüz Noroxi analizi yok
Veritabanındaki yüz binlerce zafiyetin tamamına elle analiz yazmıyoruz; bu dürüst olmazdı. Öne çıkan ve sahada etkisi olan zafiyetler için mekanizma, tespit ve kapatma adımlarını ekibimiz yazıyor.
Bu ürünü kullanıyoruz, yardım isteyinEtkilenen sistemler
—
Üreticinin bildirdiği sürümler
Kaydı açan otorite (Linux) tarafından bildirilen etkilenen sürüm aralıkları. NVD'nin CPE analizinden bağımsızdır ve genellikle ondan önce gelir.
Linux Linux
- 6.12etkilenir
- b1f202060afeb7fcb98473929d26fd3d2093b067 ve sonrası · 6fc0a7c99e973a50018c8b4be34914a1b5c7b383 öncesietkilenir · git
- b1f202060afeb7fcb98473929d26fd3d2093b067 ve sonrası · 92acf4b04f255d2f0f6770bb0d0a208d8ffb2b77 öncesietkilenir · git
- b1f202060afeb7fcb98473929d26fd3d2093b067 ve sonrası · 841a8bfcbad94bb1ba60f59ce34f75259074ae0d öncesietkilenir · git
- 6.12 öncesietkilenmez · semver
- 6.12.56 ve sonrası · 6.12.* dahil öncesietkilenmez · semver
- 6.17.6 ve sonrası · 6.17.* dahil öncesietkilenmez · semver
- 6.18 ve sonrasıetkilenmez · original_commit_for_fix
Paket düzeyi etkilenme
OSV ve GitHub Advisory verisi: ekosistem, paket ve aralık. SBOM eşleşmesi bu tabloyu kullanır.
| Ekosistem | Paket | Etkilenen aralık | Düzeltme |
|---|---|---|---|
| Debian:13 | linux | 6.12.57-1 öncesi | 6.12.57-1 |
| Debian:14 | linux | 6.17.6-1 öncesi | 6.17.6-1 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-azure | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-default | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 6.12.0-160000.27.1.160000.2.8 öncesi | 6.12.0-160000.27.1.160000.2.8 |
| openSUSE:Leap 16.0 | kernel-docs | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-rt | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-source | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-syms | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-azure | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-docs | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-kvmsmall | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-obs-qa | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| SUSE:Linux Enterprise Server 16.0 | kernel-zfcpdump | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| SUSE:Linux Micro 6.2 | kernel-64kb | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| SUSE:Linux Micro 6.2 | kernel-default | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
| SUSE:Linux Micro 6.2 | kernel-default-base | 6.12.0-160000.27.1.160000.2.8 öncesi | 6.12.0-160000.27.1.160000.2.8 |
| SUSE:Linux Micro 6.2 | kernel-rt | 6.12.0-160000.27.1 öncesi | 6.12.0-160000.27.1 |
+3
Aynı üründe
linux: tüm kayıtlarAynı birincil ürünün en yüksek skorlu diğer kayıtları.
- CVE-2026-74705udp: fix potential use-after-free in tunnel segmentation40Planlayın
- CVE-2026-74612veth: fix skb length accounting after XDP frag adjustment40Planlayın
- CVE-2026-74475vxlan: use neigh_ha_snapshot() in route_shortcircuit()40Planlayın
- CVE-2026-74309vdpa/octeon_ep: fix IRQ-to-ring mapping in interrupt handler40Planlayın
- CVE-2026-74280crypto: marvell/octeontx - fix DMA cleanup using wrong loop index40Planlayın
- CVE-2026-74279crypto: cavium/cpt - fix DMA cleanup using wrong loop index40Planlayın
Düzeltme
Hangi sürüme geçmeli
Üretici, paket deposu ve Microsoft kayıtlarından derlenen düzeltme sürümleri. Yükseltmeden önce üreticinin notunu doğrulayın.
| Ürün / paket | Düzeltilmiş sürüm | Kaynak |
|---|---|---|
| Linux Linux | 6fc0a7c99e973a50018c8b4be34914a1b5c7b383 | Üretici (CNA) |
| Linux Linux | 841a8bfcbad94bb1ba60f59ce34f75259074ae0d | Üretici (CNA) |
| Linux Linux | 92acf4b04f255d2f0f6770bb0d0a208d8ffb2b77 | Üretici (CNA) |
| debian:linux | 6.12.57-1 · Debian:13 | Paket deposu (OSV) |
| opensuse:dtb-aarch64 | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-64kb | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-azure | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-default | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-default-base | 6.12.0-160000.27.1.160000.2.8 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-docs | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-kvmsmall | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-obs-build | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-obs-qa | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-rt | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-source | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:kernel-syms | 6.12.0-160000.27.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| suse:kernel-64kb | 6.12.0-160000.27.1 · SUSE:Linux Micro 6.2 | Paket deposu (OSV) |
| suse:kernel-azure | 6.12.0-160000.27.1 · SUSE:Linux Enterprise Server 16.0 | Paket deposu (OSV) |
| suse:kernel-default | 6.12.0-160000.27.1 · SUSE:Linux Micro 6.2 | Paket deposu (OSV) |
| suse:kernel-default-base | 6.12.0-160000.27.1.160000.2.8 · SUSE:Linux Micro 6.2 | Paket deposu (OSV) |
| suse:kernel-docs | 6.12.0-160000.27.1 · SUSE:Linux Enterprise Server 16.0 | Paket deposu (OSV) |
| suse:kernel-kvmsmall | 6.12.0-160000.27.1 · SUSE:Linux Enterprise Server 16.0 | Paket deposu (OSV) |
| suse:kernel-obs-build | 6.12.0-160000.27.1 · SUSE:Linux Micro Extras 6.2 | Paket deposu (OSV) |
| suse:kernel-obs-qa | 6.12.0-160000.27.1 · SUSE:Linux Enterprise Server 16.0 | Paket deposu (OSV) |
| suse:kernel-rt | 6.12.0-160000.27.1 · SUSE:Linux Micro 6.2 | Paket deposu (OSV) |
| suse:kernel-source | 6.12.0-160000.27.1 · SUSE:Linux Micro 6.2 | Paket deposu (OSV) |
| suse:kernel-syms | 6.12.0-160000.27.1 · SUSE:Linux Micro Extras 6.2 | Paket deposu (OSV) |
| suse:kernel-zfcpdump | 6.12.0-160000.27.1 · SUSE:Linux Enterprise Server 16.0 | Paket deposu (OSV) |
İstismar durumu
Bilinen kamuya açık istismar yok
Şu an kamuya açık bir istismar görülmedi. Bu, güvende olduğunuz anlamına gelmez; yalnızca eşiğin biraz daha yüksek olduğunu gösterir.
Araştırma bağlamı
Pentester ve araştırmacı için: saldırı profili, puan anlaşmazlığı, zaman çizelgesi, yama commit’leri, kredi, varyant ve zincir adayları, bug bounty kapsamı. Hepsi mevcut veriden türetilir; istismar kodu içermez.
Zaman çizelgesi
Yayından bugüne: kavram kanıtı, Metasploit modülü, CISA KEV ve düzeltme kaydı. Tarihler kaynakların bildirdiği tarihlerdir.
Yayın dışında tarihli olay yok.
FIRST EPSS günlük puanı; yalnızca 0,01 ve üstü değişimler kaydedilir (adım grafiği).
Yama ve commit bağlantıları
Referanslardaki commit, PR ve diff adresleri. Patch-diff ve varyant avı için başlangıç noktası; istismar değil, düzeltmedir.
Referanslarda commit ya da PR bağlantısı yok.
Kredi
Tüm araştırmacılarCNA kaydında adı geçen bulan, bildiren ve analistler. Ada tıkla, aynı araştırmacının diğer kayıtlarını gör.
CNA kaydında kredi yok.
Varyant adayları
Aynı üründe aynı zafiyet sınıfı, 18 ay içinde. Yama kök nedeni kapatmadıysa kardeş hata burada olur.
Gece hesaplanan ilişki yok.
Zincir adayları
Aynı üründe kimlik doğrulama atlatma ile yetki isteyen bir açık kısa aralıkla yayımlanmış: birlikte kimlik doğrulamasız bir yola dönüşebilir.
—
Bug bounty kapsamı
Bilinen herkese açık program yok.
Kaynak: bounty-targets-data (HackerOne, Bugcrowd, Intigriti, YesWeHack herkese açık listeleri).
Teknik detay
Bu kayıt için CVSS vektörü yok; saldırı koşulları çıkarılamıyor.
Zayıflık sınıfı (CWE)
—
Saldırı bağlamı
Bu zafiyet sınıfının (CWE) MITRE CAPEC saldırı desenleri ve ATT&CK teknikleri. Tespit kuralı ve tehdit avı için başlangıç noktası.
Bu CWE için MITRE'de CAPEC/ATT&CK eşlemesi yok.
Değişiklik günlüğü
- Düzeltme✗ → ✓
Takip ettiğiniz kayıtlarda bu değişiklikler bildirim olarak da gelir. →
Referanslar
- git.kernel.org/stable/c/6fc0a7c99e973a50018c8b4be34914a1b5c7b383
- git.kernel.org/stable/c/841a8bfcbad94bb1ba60f59ce34f75259074ae0d
- git.kernel.org/stable/c/92acf4b04f255d2f0f6770bb0d0a208d8ffb2b77
Üretici bildirimleri ve resmî kayıtlar. İstismar/PoC bağlantıları bilinçli olarak dışarıda bırakıldı.