Ad

CVE-2026-53368

HIGH CVSS 3.1: 7,1 EPSS 0.12%
Обновлено 29 июля 2026
Checkpoint
Параметр Значение
CVSS 7,1 (HIGH)
Уязвимые версии 3.18 — 7.0.7
Устранено в версии 6.18.30
Поставщик Checkpoint
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: f2fs: исправлена несогласованность fsck, вызванная неправильным использованием флага nat_entry. f2fs_need_dentry_mark() считывает флаги nat_entry без взаимного исключения с путем контрольной точки, что может привести к неправильному блоку индексного дескриптора состояние маркировки. Сценарий следующий: создать, записать и fsync контрольную точку записи «файла A» - f2fs_do_sync_file // встроенный индексный дескриптор - f2fs_write_inode // индексный дескриптор загрязнен - f2fs_write_checkpoint - f2fs_flush_merged_writes - f2fs_sync_node_pages - f2fs_fsync_node_pages // нет грязного узла - f2fs_need_inode_block_update // возвращаем true - f2fs_fsync_node_pages // испорченный индекс - f2fs_need_dentry_mark // возвращаем true - f2fs_flush_nat_entries - конец f2fs_write_checkpoint - __write_node_folio // индексный дескриптор с установленным DENT_BIT_SHIFT SPO, "fsck --dry-run" найти индексный дескриптор уже имеет контрольную точку, но все равно с установленным DENT_BIT_SHIFT Состояние, наблюдаемое функцией f2fs_need_dentry_mark(), может отличаться от состояния наблюдается в __write_node_folio() после получения sbi->node_write. Основная причина заключается в том, что семантика IS_CHECKPOINTED и HAS_FSYNCED_INODE гарантированы только после записи контрольной точки. полностью завершен.

Этот патч перемещает set_dentry_mark() в __write_node_folio() и защищает его блокировкой sbi->node_write.

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

In the Linux kernel, the following vulnerability has been resolved: f2fs: fix fsck inconsistency caused by incorrect nat_entry flag usage f2fs_need_dentry_mark() reads nat_entry flags without mutual exclusion with the checkpoint path, which can result in an incorrect inode block marking state. The scenario is as follows: create & write & fsync 'file A' write checkpoint - f2fs_do_sync_file // inline inode - f2fs_write_inode // inode folio is dirty - f2fs_write_checkpoint - f2fs_flush_merged_writes - f2fs_sync_node_pages - f2fs_fsync_node_pages // no dirty node - f2fs_need_inode_block_update // return true - f2fs_fsync_node_pages // inode dirtied - f2fs_need_dentry_mark //return true - f2fs_flush_nat_entries - f2fs_write_checkpoint end - __write_node_folio // inode with DENT_BIT_SHIFT set SPO, "fsck --dry-run" find inode has already checkpointed but still with DENT_BIT_SHIFT set The state observed by f2fs_need_dentry_mark() can differ from the state observed in __write_node_folio() after acquiring sbi->node_write. The root cause is that the semantics of IS_CHECKPOINTED and HAS_FSYNCED_INODE are only guaranteed after the checkpoint write has fully completed. This patch moves set_dentry_mark() into __write_node_folio() and protects it with the sbi->node_write lock.

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

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

Последствия

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

Строка CVSS v3.1

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

Конфигурация От (включительно) До (исключительно)
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
3.18 6.18.30
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
6.19 7.0.7