CVE-2026-64359 in LinuxИнформация

Сводка

по VulDB • 27.07.2026

В ядре Linux устранена следующая уязвимость:

nilfs2: отклонять ioctl CLEAN_SEGMENTS с номерами сегментов вне допустимого диапазона

Syzbot сообщил о зависании задачи в nilfs_transaction_begin(), где несколько задач, выполнявших chmod() на смонтированной файловой системе nilfs2, блокировались более чем на 143 секунды в ожидании получения ns_segctor_sem для чтения:

INFO: task syz.0.17:5918 blocked for more than 143 seconds. Call Trace: schedule+0x164/0x360 rwsem_down_read_slowpath+0x6d9/0x940 down_read+0x99/0x2e0 nilfs_transaction_begin+0x364/0x710 fs/nilfs2/segment.c:221 nilfs_setattr+0x124/0x2c0 fs/nilfs2/inode.c:921 notify_change+0xc1a/0xf40 chmod_common+0x273/0x4a0 do_fchmodat+0x12d/0x230

Запись, удерживающая ns_segctor_sem, была вызовом NILFS_IOCTL_CLEAN_SEGMENTS из параллельного потока, застрявшим внутри printk при выдаче предупреждений для каждого элемента из nilfs_sufile_updatev():

__nilfs_msg+0x373/0x450 fs/nilfs2/super.c:78 nilfs_sufile_updatev+0x21c/0x6d0 fs/nilfs2/sufile.c:186 nilfs_sufile_freev fs/nilfs2/sufile.h:93 [inline]
nilfs_free_segments fs/nilfs2/segment.c:1140 [inline]
nilfs_segctor_collect_blocks fs/nilfs2/segment.c:1261 [inline]
nilfs_segctor_do_construct+0x1f55/0x76c0 nilfs_clean_segments+0x3bd/0xa50 nilfs_ioctl_clean_segments fs/nilfs2/ioctl.c:922 [inline]
nilfs_ioctl+0x261f/0x2780

Корневая причина заключается в том, что номера сегментов, предоставленные пользователем, не проверяются на корректность до того, как nilfs_clean_segments() начинает выполнять работу; проверка диапазона для каждого segnum выполняется глубоко внутри цепочки вызовов функцией nilfs_sufile_updatev(), которая выводит nilfs_warn() для каждой недопустимой записи, продолжая удерживать блокировку segctor и sufile mi_sem. Под нагрузкой (повторные вызовы через несколько смонтированных файловых систем, насыщающие глобальный путь printk), кумулятивная задержка printk удерживает ns_segctor_sem достаточно долго, чтобы сработал watchdog hung_task, блокируя параллельные операции, такие как chmod(), которым требуется ns_segctor_sem для чтения.

Исправление заключается в проверке содержимого kbufs[4] в nilfs_clean_segments() сразу после получения ns_segctor_sem через nilfs_transaction_lock(). Удержание ns_segctor_sem сериализует проверку относительно nilfs_ioctl_resize(), которая может изменять ns_nsegments, поэтому для проверки используется согласованное значение. Номера сегментов вне допустимого диапазона отклоняются с кодом ошибки -EINVAL перед началом любой работы по очистке сегментов, так что недопустимые записи никогда не достигают пути диагностики на уровне элементов внутри nilfs_sufile_updatev().

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Ответственный

Linux

Резервировать

19.07.2026

Раскрытие

25.07.2026

Модерация

принято

Вход

VDB-383152

EPSS

0.00177

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!