CVE-2026-23097: migrate: correct lock ordering for hugetlb file folios

Published Feb 4, 2026
·
Updated

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 foliolock, then tries to acquire immaprwsem(read lock). 2) Task (5754): Holds immaprwsem(write lock), then tries to acquire foliolock.

migratepages() -> migratehugetlbs() -> unmapandmovehugepage() <- Takes foliolock! -> removemigrationptes() -> rmapwalkfile() -> immaplockread() <- Waits for immaprwsem(read lock)!

hugetlbfsfallocate() -> hugetlbfspunchhole() <- Takes immaprwsem(write lock)! -> hugetlbfszeropartialpage() -> filemaplockhugetlbfolio() -> filemaplockfolio() -> filemapgetfolio <- Waits for foliolock!

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 immaplock to cover the calls to removemigrationptes() 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.

Affected Software

19 affected components
Linux Linux kernel
Linux Linux kernel>=5.9.9<5.10
Linux Linux kernel>=5.10.1<5.10.249
Linux Linux kernel>=5.11<5.15.199
Linux Linux kernel>=5.16<6.1.162
Linux Linux kernel>=6.2<6.6.122
Linux Linux kernel>=6.7<6.12.68
Linux Linux kernel>=6.13<6.18.8
Linux Linux kernel=5.10
Linux Linux kernel=5.10-rc4
Linux Linux kernel=5.10-rc5
Linux Linux kernel=5.10-rc6
Linux Linux kernel=5.10-rc7
Linux Linux kernel=6.19-rc1
Linux Linux kernel=6.19-rc2
Linux Linux kernel=6.19-rc3
Linux Linux kernel=6.19-rc4
Linux Linux kernel=6.19-rc5
Linux Linux kernel=6.19-rc6

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Expand the scope of the existing i_mmap_lock to cover the calls to remove_migration_ptes(), ensuring i_mmap_rwsem is held across remove_migration_ptes() to correct lock ordering for hugetlb file folios.

    Linux kernel (mm/rmap.c) i_mmap_lock scope = expanded to cover remove_migration_ptes()

Event History

Feb 4, 2026
CVE Published
via MITRE·04:08 PM
Data Sourced
via MITRE·04:08 PM
Description
Data Sourced
via Red Hat·05:04 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·05:16 PM
RemedyDescriptionSeverityAffected Software
Sep 20, 58180
Event
via NVD·02:35 AM

Frequently Asked Questions

1

What is the severity of CVE-2026-23097?

CVE-2026-23097 has been rated with a severity that necessitates immediate attention due to potential deadlock risks in the Linux kernel.

2

How do I fix CVE-2026-23097?

To resolve CVE-2026-23097, update the Linux kernel to the latest version where the vulnerability has been patched.

3

What systems are affected by CVE-2026-23097?

CVE-2026-23097 affects the Linux kernel, specifically versions prior to the fixes implemented for this vulnerability.

4

What is the nature of the vulnerability described in CVE-2026-23097?

CVE-2026-23097 involves a deadlock scenario caused by incorrect lock ordering for hugetlb file folios in the Linux kernel.

5

Who discovered CVE-2026-23097?

CVE-2026-23097 was discovered by Syzbot, with analysis conducted by Lance Yang.

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