Ad

CVE-2026-89669

CRITICAL CVSS 3.1: 9,8 EPSS 0.69%
Обновлено 14 сентября 2026
Linux
Параметр Значение
CVSS 9,8 (CRITICAL)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: nfsd: инициализировать Stateid копирования-уведомления перед публикацией nfsd4_copy_notify() завершил инициализацию состояния cpntf после nfs4_alloc_init_cpntf_state() уже связал его с s2s_cp_stateids IDR и родительский sc_cp_list с cs_count == 1 ( ссылка на членство) и ни один из них не удерживается для вызывающего абонента. Гонки OFFLOAD_CANCEL (созданный cl_id == nn->s2s_cp_cl_id плюс угадываемый so_id) может достичь метода Manage_cpntf_state() и освободить запись, повернув последующее чтение cpn_cnr_stateid вызывающего абонента и cp_p_stateid/cp_p_clid записывает в использование после освобождения. Идентификатор клиента-владельца также был записан только после публикации, поэтому он не мог проверить право собственности в этом окне.

Запишите cp_p_stateid и cp_p_clid внутри nfs4_alloc_init_cpntf_state(). прежде чем nfs4_init_cp_state() опубликует запись и вернет ее с помощью дополнительная ссылка. Вызывающий считывает идентификатор состояния по этой ссылке и удаляет его с помощью nfs4_put_cpntf_state(); из-за поздней ошибки прачечная самообслуживания пожинает запись.

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

In the Linux kernel, the following vulnerability has been resolved: nfsd: initialize copy-notify stateid before publishing it nfsd4_copy_notify() finished initializing the cpntf state after nfs4_alloc_init_cpntf_state() had already linked it into the s2s_cp_stateids IDR and the parent's sc_cp_list, with cs_count == 1 (the membership reference) and none held for the caller. A racing OFFLOAD_CANCEL (crafted cl_id == nn->s2s_cp_cl_id plus the guessable so_id) could reach manage_cpntf_state() and free the entry, turning the caller's subsequent cpn_cnr_stateid read and cp_p_stateid/cp_p_clid writes into use-after-free. The owning clientid was also only recorded after publication, so it could not gate an ownership check in that window. Record cp_p_stateid and cp_p_clid inside nfs4_alloc_init_cpntf_state() before nfs4_init_cp_state() publishes the entry, and return it with an extra reference. The caller reads the stateid under that reference and drops it with nfs4_put_cpntf_state(); on a late error the laundromat reaps the entry.

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

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

Последствия

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

Строка CVSS v3.1