CVE-2026-53207: mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison
In the Linux kernel, the following vulnerability has been resolved:
mm/memory-failure: fix hugetlblock AA deadlock in gethugepageforhwpoison
Two concurrent madvise(MADVHWPOISON) calls on the same hugetlb page can trigger a recursive spinlock self-deadlock (AA deadlock) on hugetlblock when racing with a concurrent unmap:
thread#0 thread#1 -------- -------- madvise(folio, MADVHWPOISON) -> poisons the folio successfully madvise(folio, MADVHWPOISON) unmap(folio) trymemoryfailurehugetlb gethugepageforhwpoison spinlockirq(&hugetlblock) <- held gethugepageforhwpoison hugetlbupdatehwpoison() -> MFHUGETLBFOLIOPREPOISONED goto out: folioput() refcount: 1 -> 0 freehugefolio() spinlockirqsave(&hugetlblock) -> AA DEADLOCK!
The out: path in gethugepageforhwpoison() calls folioput() to drop the GUP reference while the hugetlblock is still held by the hugetlb.c wrapper gethugepageforhwpoison(). If concurrent unmap has released the page table mapping reference, folioput() drops the folio refcount to zero, triggering freehugefolio() which attempts to re-acquire the non-recursive hugetlblock.
Fix this by moving hugetlblock acquisition from the hugetlb.c wrapper into gethugepageforhwpoison(). Place spinunlockirq() before the folioput() at the out: label so the folio is always released outside the lock.
[akpm@linux-foundation.org: fix race, rename label per Miaohe]
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.6.143.1-1 - Upgrade
Upgrade
Linux kernelto a version that resolves this vulnerability.Patch mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison
Event History
Frequently Asked Questions
What is the severity of CVE-2026-53207?
CVE-2026-53207 has a medium severity rating of 5.5.
How do I fix CVE-2026-53207?
To fix CVE-2026-53207, ensure that your Linux kernel is updated to a version that includes the patch for this vulnerability.
What systems are affected by CVE-2026-53207?
CVE-2026-53207 affects the Linux kernel and the Microsoft azl3 kernel version 6.6.141.1-1.
What are the consequences of CVE-2026-53207?
CVE-2026-53207 can lead to a recursive spinlock self-deadlock on hugetlb_lock, potentially causing system instability.
Is CVE-2026-53207 exploitable remotely?
CVE-2026-53207 is classified as having low attack complexity, making it potentially exploitable under certain conditions.