CVE-2026-53207: mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison

Published Jun 25, 2026
·
Updated

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

19 affected componentsFixes available
Linux Linux kernel
Microsoft azl3 kernel 6.6.141.1-1<6.6.143.1-1
6.6.143.1-1
Linux Linux kernel>=5.15.54<5.16
Linux Linux kernel>=5.18.1<6.1.176
Linux Linux kernel>=6.2<6.6.143
Linux Linux kernel>=6.7<6.12.94
Linux Linux kernel>=6.13<6.18.36
Linux Linux kernel>=6.19<7.0.13
Linux Linux kernel=5.18
Linux Linux kernel=5.18-rc4
Linux Linux kernel=5.18-rc5
Linux Linux kernel=5.18-rc6
Linux Linux kernel=5.18-rc7
Linux Linux kernel=7.1-rc1
Linux Linux kernel=7.1-rc2
Linux Linux kernel=7.1-rc3
Linux Linux kernel=7.1-rc4
Linux Linux kernel=7.1-rc5
Linux Linux kernel=7.1-rc6

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 6.6.143.1-1
  2. Upgrade

    Upgrade Linux kernel to a version that resolves this vulnerability.

    Patch mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison

Event History

Jun 25, 2026
CVE Published
via MITRE·08:39 AM
Data Sourced
via MITRE·08:39 AM
Description
Data Sourced
via NVD·09:16 AM
RemedyDescriptionSeverityWeaknessAffected Software
Jun 27, 2026
Data Sourced
via Microsoft·08:05 AM
DescriptionSeverityWeaknessAffected Software
Updated
via Microsoft·08:05 AM
DescriptionSeverity

Frequently Asked Questions

1

What is the severity of CVE-2026-53207?

CVE-2026-53207 has a medium severity rating of 5.5.

2

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.

3

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.

4

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.

5

Is CVE-2026-53207 exploitable remotely?

CVE-2026-53207 is classified as having low attack complexity, making it potentially exploitable under certain conditions.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203