CVE-2026-23097

Source
https://cve.org/CVERecord?id=CVE-2026-23097
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23097.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-23097
Downstream
Related
Published
2026-02-04T16:08:19.815Z
Modified
2026-03-16T08:57:05.479060Z
Summary
migrate: correct lock ordering for hugetlb file folios
Details

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! -> removemigration_ptes() -> _rmapwalkfile() -> immaplockread() <- Waits for immaprwsem(read lock)!

hugetlbfsfallocate() -> hugetlbfspunchhole() <- Takes immaprwsem(write lock)! -> hugetlbfszeropartialpage() -> filemaplockhugetlbfolio() -> filemaplock_folio() -> _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.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23097.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
336bf30eb76580b579dc711ded5d599d905c0217
Fixed
e7396d23f9d5739f56cf9ab430c3a169f5508394
Fixed
ad97b9a55246eb940a26ac977f80892a395cabf9
Fixed
5edb9854f8df5428b40990a1c7d60507da5bd330
Fixed
526394af4e8ade89cacd1a9ce2b97712712fcc34
Fixed
b75070823b89009f5123fd0e05a8e0c3d39937c1
Fixed
1b68efce6dd483d22f50d0d3800c4cfda14b1305
Fixed
b7880cb166ab62c2409046b2347261abf701530e
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Last affected
ef792d6ce0db6a56e56743b1de1716a982c3b851

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23097.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.10.0
Fixed
5.10.249
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.199
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.162
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.122
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.68
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.8

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23097.json"