Skip to main content
VulnerabilityPublished Updated

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

Affects Linux kernelSource CVE Database V5

0
Compare

Not known to be exploited · fixed in fc3ff42cb0cbf947e4600ae9761c3783760050e2 : update Linux kernel when convenient.

Data as of 6 Nov 2026, 16:49 UTC

Severity
Unrated

Rated by Threat Radar · No CVSS score from NVD or the CNA

Thin evidence

One scorer or none
CISA SSVC
Exploitation
No evidence of active exploitation and no public proof of concept
Automatable
Attackers cannot reliably automate steps 1–4 of the kill chain
Technical impact
Limited control over the software or limited information exposure

CISA SSVC assessment, 2026-11-06.

Patch
Available – fixed in fc3ff42cb0cbf947e4600ae9761c3783760050e2, dd77a83915b07e2b0205adb284f08b39ae31dc4b, bf7ba8f96c258c30393814491930ae4ecdc5fe5e +4

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 25 Jun 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 6 Nov 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • >=5.15.54 <5.16
Fixed in
  • fc3ff42cb0cbf947e4600ae9761c3783760050e2
  • dd77a83915b07e2b0205adb284f08b39ae31dc4b
  • bf7ba8f96c258c30393814491930ae4ecdc5fe5e
  • a33bfed648c10f5a1519981dbfad80841191edc8
  • 77b73b54801ae7137479c141fd0473a491c1dc48
  • 5.16
  • 3c2d42b8ee345b17a4ba56b0f6492d1ff4c1178e
LinuxLinuxAffected
  • =5.18
Fixed in–

Description

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. [akpm@linux-foundation.org: fix race, rename label per Miaohe]

References

Community reviews

Loading reviews…