Ad

CVE-2026-72189

NONE EPSS 0.19%
Обновлено 17 августа 2026
Linux
Параметр Значение
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: ntfs: не обновлять список атрибутов, когда суперблок неактивен generic_shutdown_super() очищает SB_ACTIVE перед удалением кэшированных индексных дескрипторов. Если вытеснение выбирает поддельный индекс для безымянного базового индекса Атрибут $ATTRIBUTE_LIST, ntfs_evict_big_inode() удаляет поддельные индексные дескрипторы ссылка на базовый индексный дескриптор, в то время как поддельный индексный дескриптор все еще хеширован и помечен Я_БЕСПЛАТНО. Этот ввод может синхронно записывать обратно базовый индексный дескриптор.

Путь обратной записи может обновить пары сопоставлений и вызвать ntfs_attrlist_update(), что безоговорочно вызывает ntfs_attr_iget() для той же подделки $ATTRIBUTE_LIST индексный дескриптор. Затем VFS находит индексный дескриптор I_FREEING и ожидает завершения вытеснения. но текущая задача все еще находится внутри этого пути выселения, что приводит к самоблокировка в find_inode(). Исправьте это, отразив защиту от разрушения, используемую __ntfs_write_inode(): после очистки SB_ACTIVE не пытайтесь получить список атрибутов поддельный индексный дескриптор.

Верните -EIO, чтобы демонтаж прервал обновление вместо ожидания индексный дескриптор, который он вытесняет.

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

In the Linux kernel, the following vulnerability has been resolved: ntfs: fail attrlist updates when the superblock is inactive generic_shutdown_super() clears SB_ACTIVE before evicting cached inodes. If eviction selects the fake inode for a base inode's unnamed $ATTRIBUTE_LIST attribute, ntfs_evict_big_inode() drops the fake inode's reference on the base inode while the fake inode is still hashed and marked I_FREEING. That iput can synchronously write back the base inode. The writeback path may update mapping pairs and call ntfs_attrlist_update(), which unconditionally calls ntfs_attr_iget() for the same $ATTRIBUTE_LIST fake inode. VFS then finds the I_FREEING inode and waits for eviction to finish, but the current task is still inside that eviction path, causing a self-deadlock in find_inode(). Fix this by mirroring the teardown guard used by __ntfs_write_inode(): once SB_ACTIVE has been cleared, do not try to iget the attribute-list fake inode. Return -EIO so teardown aborts the update instead of waiting on the inode it is evicting.