Ad

CVE-2026-23097

MEDIUM CVSS 3.1: 5,5 EPSS 0.13%
Обновлено 19 октября 2026
Linux
Параметр Значение
CVSS 5,5 (MEDIUM)
Уязвимые версии 5.10.1 — 6.6.122
Устранено в версии 5.10
Тип уязвимости CWE-362 (Состояние гонки)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: миграция: правильный порядок блокировок для файловых фолио огромных tlb Syzbot нашел тупик (проанализировал Лэнс Янг): 1) Задача (5749): удерживает folio_lock, затем пытается получить i_mmap_rwsem (блокировку чтения). 2) Задача (5754): удерживает i_mmap_rwsem(блокировка записи), затем пытается получить folio_lock. мигрировать_страницы() -> мигрировать_hugetlbs() -> unmap_and_move_huge_page() <- Требуется folio_lock! -> Remove_migration_ptes() -> __rmap_walk_file() -> i_mmap_lock_read() <- Ожидает i_mmap_rwsem(блокировка чтения)! Hugetlbfs_fallocate() -> Hugetlbfs_punch_hole() <- Принимает i_mmap_rwsem(блокировка записи)! -> Hugetlbfs_zero_partial_page() -> filemap_lock_hugetlb_folio() -> filemap_lock_folio() -> __filemap_get_folio <- Ожидает folio_lock! Путь миграции — это тот, который принимает блокировки в неправильном порядке в соответствии с документация в верхней части mm/rmap.c. Так что расширяйте сферу применения существующий i_mmap_lock для покрытия вызовов Remove_migration_ptes(). Примерно так было (в основном) после фиксации c0d0381ade79.

Это было удалено 336bf30eb765 как для файловых, так и для анонимных страниц огромных tlb, когда это необходимо были удалены только для анонимных страниц огромных tlb.

Показать оригинальное описание (EN)

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.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Нет
Нет модификации данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1

Уязвимые продукты 18

Конфигурация От (включительно) До (исключительно)
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
5.9.9 5.10
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
5.10.1 5.10.249
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
5.11 5.15.199
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
5.16 6.1.162
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
6.2 6.6.122
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
6.7 6.12.68
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
6.13 6.18.8
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:5.10:-:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:5.10:rc4:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:5.10:rc5:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:5.10:rc6:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:5.10:rc7:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:*
— —
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:*
— —