CVE-2026-23097: migrate: correct lock ordering for hugetlb file folios
In the Linux kernel, the following vulnerability has been resolved:
migrate: correct lock ordering for hugetlb file folios
Syzbot has found a deadlock (analyzed by Lance Yang):
1) Task (5749): Holds folio_lock, then tries to acquire i_mmap_rwsem(read lock).
2) Task (5754): Holds i_mmap_rwsem(write lock), then tries to acquire
folio_lock.
migrate_pages()
-> migrate_hugetlbs()
-> unmap_and_move_huge_page() <- Takes folio_lock!
-> remove_migration_ptes()
-> __rmap_walk_file()
-> i_mmap_lock_read() <- Waits for i_mmap_rwsem(read lock)!
hugetlbfs_fallocate()
-> hugetlbfs_punch_hole() <- Takes i_mmap_rwsem(write lock)!
-> hugetlbfs_zero_partial_page()
-> filemap_lock_hugetlb_folio()
-> filemap_lock_folio()
-> __filemap_get_folio <- Waits for folio_lock!
The migration path is the one taking locks in the wrong order according to
the documentation at the top of mm/rmap.c. So expand the scope of the
existing i_mmap_lock to cover the calls to remove_migration_ptes() too.
This is (mostly) how it used to be after commit c0d0381ade79. That was
removed by 336bf30eb765 for both file & anon hugetlb pages when it should
only have been removed for anon hugetlb pages.
Security readout for executives and security teams
Plain-English summary
CVE-2026-23097 is a Linux kernel deadlock in huge-page file handling. Affected systems can hang when kernel page migration and hugetlbfs hole-punch operations take locks in conflicting order. The published data does not provide CVSS, confirmed attacker requirements, or active exploitation evidence.
Executive priority
Handle through normal kernel patch management, with higher priority for systems where availability is critical and huge pages are used. There is not enough source evidence to justify emergency action based on active exploitation.
Technical view
The flaw is incorrect lock ordering in migrate_hugetlb file folios. migrate_pages can hold folio_lock then wait on i_mmap_rwsem, while hugetlbfs_fallocate can hold i_mmap_rwsem then wait on folio_lock. The fix expands the existing i_mmap_lock scope around remove_migration_ptes for file-backed hugetlb pages.
Likely exposure
Exposure is most relevant to Linux systems using affected kernel versions with hugetlb/hugetlbfs and file-backed huge pages. Internet-facing status alone is not the key factor; local workload behavior and huge-page usage matter. The source bundle lists Linux kernel affected versions but does not provide complete distribution package mapping.
Exploitation context
The record says syzbot found the deadlock. It does not cite public exploitation, weaponized proof of concept, or CISA KEV listing. Treat this as a potential availability issue until vendor advisories or distribution trackers clarify practical exploitability.
Researcher notes
The bug is a locking regression around file-backed hugetlb migration. Sources identify the migration path as violating the documented mm/rmap.c lock order. The affected-version data is sparse and should be reconciled against kernel stable commits and downstream vendor advisories.
Mitigation direction
Apply the appropriate stable kernel update containing the referenced fixes.
Check your Linux distribution advisory for backported fixed package versions.
Prioritize hosts using hugetlbfs, huge pages, or memory migration features.
If patching is delayed, review vendor guidance for operational mitigations.
Monitor kernel logs and workload hangs involving hugetlbfs activity.
Validation and detection
Inventory kernel versions across Linux hosts and appliances.
Identify systems using hugetlbfs or configured huge pages.
Map installed distribution packages to vendor fixed versions.
Confirm the relevant stable commit is present or backported.
Review monitoring for deadlocks, stalls, or hung tasks.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-23097 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.