In the Linux kernel, the following vulnerability has been resolved:
mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison
Two concurrent madvise(MADV_HWPOISON) calls on the same hugetlb page can trigger a recursive spinlock self-deadlock (AA deadlock) on hugetlb_lock when racing with a concurrent unmap:
thread#0 thread#1 -------- -------- madvise(folio, MADV_HWPOISON) -> poisons the folio successfully madvise(folio, MADV_HWPOISON) unmap(folio) try_memory_failure_hugetlb get_huge_page_for_hwpoison spin_lock_irq(&hugetlb_lock) <- held __get_huge_page_for_hwpoison hugetlb_update_hwpoison() -> MF_HUGETLB_FOLIO_PRE_POISONED goto out: folio_put() refcount: 1 -> 0 free_huge_folio() spin_lock_irqsave(&hugetlb_lock) -> AA DEADLOCK!
The out: path in __get_huge_page_for_hwpoison() calls folio_put() to drop the GUP reference while the hugetlb_lock is still held by the hugetlb.c wrapper get_huge_page_for_hwpoison(). If concurrent unmap has released the page table mapping reference, folio_put() drops the folio refcount to zero, triggering free_huge_folio() which attempts to re-acquire the non-recursive hugetlb_lock.
Fix this by moving hugetlb_lock acquisition from the hugetlb.c wrapper into get_huge_page_for_hwpoison(). Place spin_unlock_irq() before the folio_put() at the out: label so the folio is always released outside the lock.
[[email protected]: fix race, rename label per Miaohe]
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel6.18-modules-extra-commonUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-modules-extra-commonUpgrade microvm-kernel6.18Upgrade kernel-livepatch-6.18.36-69.134Upgrade kernel-develUpgrade perf6.18Upgrade bpftool6.18Upgrade kernel-toolsUpgrade kernel6.12-tools-debuginfoUpgrade kernelUpgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel6.18Upgrade kernel6.12-headersUpgrade kernel-livepatch-6.1.176-220.358Upgrade kernel6.18-modules-extraUpgrade kernel6.18-tools-develUpgrade python3-perf6.12-debuginfoUpgrade kernel6.12-debuginfoUpgrade kernel6.12-develUpgrade python3-perf-debuginfoUpgrade bpftoolUpgrade kernel-debuginfo-common-x86_64Upgrade python3-perf6.18Upgrade kernel6.18-develUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-livepatch-6.12.94-123.174Upgrade kernel6.12-modules-extra-commonUpgrade kernel-headersUpgrade bpftool6.12-debuginfoUpgrade bpftool6.18-debuginfoUpgrade perf-debuginfoUpgrade perf6.12-debuginfoUpgrade kernel6.12-debuginfo-common-x86_64Upgrade bpftool6.12Upgrade bpftool-debuginfoUpgrade python3-perf6.18-debuginfoUpgrade python3-perfUpgrade kernel6.12-modules-extraUpgrade perf6.12Upgrade kernel6.12-tools-develUpgrade kernel6.12Upgrade kernel-tools-debuginfoUpgrade kernel6.18-headersUpgrade kernel-tools-develUpgrade kernel-modules-extraUpgrade python3-perf6.12Upgrade kernel6.18-debuginfoUpgrade kernel6.12-toolsUpgrade kernel-debuginfoUpgrade perf6.18-debuginfoUpgrade perfUpgrade kernel6.18-tools-debuginfoUpgrade kernel6.18-toolsUpgrade kernel6.18-debuginfo-common-aarch64 | Jul 8, 2026 | Jun 25, 2026 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Jul 5, 2026 | Jul 5, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Jun 25, 2026 |
| Ubuntu | — | Upgrade linux-image-virtual-hwe-26.04Upgrade linux-image-realtime-7.0Upgrade linux-image-realtime-hwe-26.04Upgrade linux-image-7.0.0-1006-gkeUpgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-gke-64k-7.0Upgrade linux-image-generic-64kUpgrade linux-image-aws-64kUpgrade linux-image-aws-64k-7.0Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-nvidia-bos-7.0Upgrade linux-image-7.0.0-1006-gke-64kUpgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-oem-26.04bUpgrade linux-image-ibmUpgrade linux-image-oem-26.04Upgrade linux-image-7.0.0-1019-raspi-realtimeUpgrade linux-image-generic-64k-7.0Upgrade linux-image-nvidiaUpgrade linux-image-7.0.0-31-generic-64kUpgrade linux-image-oracle-7.0Upgrade linux-image-7.0.0-1019-raspiUpgrade linux-image-7.0.0-1012-awsUpgrade linux-image-aws-7.0Upgrade linux-image-azure-lts-26.04Upgrade linux-image-gke-64kUpgrade linux-image-7.0.0-31-realtime-64kUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-azureUpgrade linux-image-raspiUpgrade linux-image-7.0.0-2018-nvidia-bosUpgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-7.0.0-1013-oemUpgrade linux-image-nvidia-bos-64kUpgrade linux-image-nvidia-bosUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-gcp-7.0Upgrade linux-image-genericUpgrade linux-image-7.0.0-1018-nvidiaUpgrade linux-image-ibm-7.0Upgrade linux-image-oracle-64k-7.0Upgrade linux-image-7.0.0-2018-nvidia-bos-64kUpgrade linux-image-nvidia-7.0Upgrade linux-image-7.0.0-1013-ibmUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-gkeUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oracleUpgrade linux-image-7.0.0-31-genericUpgrade linux-image-virtualUpgrade linux-image-gcp-64kUpgrade linux-image-raspi-7.0Upgrade linux-image-oem-7.0Upgrade linux-image-realtimeUpgrade linux-image-generic-hwe-26.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-7.0.0-31-realtimeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-azure-7.0Upgrade linux-image-gke-hwe-26.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-realtime-64kUpgrade linux-image-7.0.0-1011-oracle-64kUpgrade linux-image-oem-26.04aUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-awsUpgrade linux-image-7.0.0-1014-azureUpgrade linux-image-realtime-64k-7.0Upgrade linux-image-gcpUpgrade linux-image-gke-7.0Upgrade linux-image-gcp-64k-7.0Upgrade linux-image-nvidia-64kUpgrade linux-image-oracle-64kUpgrade linux-image-7.0.0-1011-oracleUpgrade linux-image-7.0.0-1012-aws-64kUpgrade linux-image-7.0.0-1018-nvidia-64kUpgrade linux-image-virtual-7.0Upgrade linux-image-generic-7.0 | Sep 14, 2026 | Sep 7, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 6, 2026 | Jun 25, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub