CVE: CVE-2026-89712
Продукт: Linux Kernel
Дата публикации: 11.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,63%; процентиль 48,08%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В подсистеме NFSD ядра Linux обнаружена ошибка use-after-free, возникающая при параллельной обработке списка монтирований. Уязвимость затрагивает серверы NFS и может привести к падению ядра или выполнению кода. Ниже описаны условия срабатывания и порядок проверки обновлений.
Основные характеристики
Риск связан с нарушением целостности памяти в ядре при работе с NFS-сервером. Ошибка позволяет нарушителю повлиять на состояние системы через специфическую последовательность операций.
- Тип ошибки: Use-after-free (CWE-416). Ссылка на освобождённую память приводит к непредсказуемому поведению.
- CVSS: 9.8 (CRITICAL). Вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
- Условия атаки: Сеть, низкая сложность, привилегии не требуются. Атака возможна удалённо.
- Эксплуатация: Публичные данные о массовой эксплуатации отсутствуют.
- EPSS: 0,63% (процентиль 48,08%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая.
Какие продукты и версии затронуты
Уязвимость затрагивает подсистему NFSD в ядре Linux. Точный список версий, требующих обновления, зависит от дистрибутива и ветки ядра.
- Компонент:
fs/nfsd/nfs4state.c.
- Функция:
nfsd4_ssc_expire_umount().
- Ветки ядра: Исправление внесено в stable-ветки. Проверьте наличие коммита
036c1b182f4da65363e79ec0ac276edc6b7296e5в вашем ядре.
Для точного определения статуса системы используйте команды проверки версии, описанные ниже.
Причина уязвимости
Причина ошибки — в логике итерации по списку
nfsd_ssc_mount_list в функции nfsd4_ssc_expire_umount(). Код использует макрос list_for_each_entry_safe, который сохраняет указатель tmp на следующий элемент перед освобождением текущего.При обработке устаревшего элемента функция освобождает блокировку
nfsd_ssc_lock для выполнения mntput(). В этот момент другой поток может удалить и освободить элемент, на который указывает tmp. При возврате к итерации код обращается к освобождённой памяти.Как работает атака
Атака требует одновременного выполнения двух сценариев в подсистеме NFSD. Первый сценарий — периодическая проверка устаревших монтирований. Второй — отмена DUL (Delegation Upgrade Lock) из-за сбоя монтирования исходного сервера.
Если эти события совпадают во времени, возникает гонка. Поток, выполняющий
nfsd4_ssc_cancel_dul(), освобождает элемент списка, который ещё хранится в локальной переменной tmp другого потока. Последующее обращение к этому указателю приводит к use-after-free.Условия успешной эксплуатации
Для успешной эксплуатации необходимо выполнение следующих условий:
- Система работает как NFS-сервер (NFSD).
- Активно используется механизм межсерверного копирования (inter-server copy).
- Происходит одновременная обработка устаревших монтирований и отмена DUL.
- Успешное срабатывание требует точного совпадения временных окон, что делает эксплуатацию сложной.
Возможный сценарий атаки
Сценарий атаки начинается с инициации межсерверного копирования данных. Сервер NFS регистрирует монтирование исходного сервера в списке
nfsd_ssc_mount_list. Через некоторое время это монтирование устаревает.Параллельно происходит сбой соединения с исходным сервером, что запускает процесс отмены DUL. В момент, когда периодический воркер освобождает блокировку для
mntput(), поток отмены DUL удаляет элемент из списка. Воркер продолжает итерацию по освобождённому указателю, что приводит к повреждению памяти ядра.Есть ли публичный эксплойт
На момент публикации CVE-2026-89712 публичные эксплойты не зафиксированы. В каталоге CISA KEV уязвимость не числится. EPSS-оценка 0,63% указывает на низкую вероятность активной эксплуатации в ближайшем будущем. Тем не менее, наличие исправления в ядре является обязательным для защиты.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для этой уязвимости не опубликованы. Общие признаки аномальной работы ядра могут включать:
- Падение ядра (kernel panic) с упоминанием
nfsdилиnfs4state.cв backtrace.
- Аномальные записи в
dmesgили системном журнале, связанные с ошибками памяти в подсистеме NFS.
- Нестабильность NFS-сервиса при высокой нагрузке на межсерверное копирование.
Как обнаружить атаку
Для обнаружения попыток эксплуатации или последствий уязвимости рекомендуется:
- Мониторинг журналов ядра на наличие ошибок, связанных с
nfsd_ssc.
- Анализ backtrace при падении ядра на наличие функций
nfsd4_ssc_expire_umountилиnfsd4_ssc_cancel_dul.
- Контроль стабильности NFS-сервиса в системах, использующих межсерверное копирование.
Специфичные сигнатуры для IDS/IPS для этой уязвимости не разработаны.
Как проверить свою версию
Проверьте текущую версию ядра и наличие исправления. Используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Для проверки наличия конкретного коммита в вашем ядре (если используется git-ядро):
Bash:
git log --oneline | grep 036c1b182f4da65363e79ec0ac276edc6b7296e5
Если коммит отсутствует, система уязвима. Замените
<имя-пакета> на фактическое имя пакета ядра в вашем дистрибутиве при проверке через пакетный менеджер.Исправление
Единственный надёжный способ устранения уязвимости — обновление ядра до версии, содержащей исправление. Коммит
036c1b182f4da65363e79ec0ac276edc6b7296e5 был принят в stable-ветки.- Обновите ядро через штатные средства дистрибутива.
- Перезагрузите систему после установки обновлённого ядра.
- Проверьте, что новая версия ядра содержит указанный коммит.
Не используйте cherry-pick отдельных патчей, если дистрибутив предоставляет готовые обновления.
Временные меры защиты
Пока обновление не установлено, можно снизить риск, ограничив использование уязвимых функций:
- Отключите межсерверное копирование NFS, если оно не критично для бизнеса.
- Ограничьте доступ к NFS-серверу доверенными хостами.
- Уменьшите количество одновременных операций с NFS, чтобы снизить вероятность гонки.
Эти меры не устраняют уязвимость, но снижают вероятность её срабатывания.
Как проверить устранение уязвимости
После обновления ядра выполните следующие шаги для проверки:
- Убедитесь, что система работает на новой версии ядра:
uname -r.
- Проверьте наличие коммита в истории ядра (если доступно):
git log | grep 036c1b182f4da65363e79ec0ac276edc6b7296e5.
- Проведите функциональное тестирование NFS-сервиса, включая сценарии межсерверного копирования.
- Отслеживайте логи на предмет ошибок в подсистеме NFSD в течение нескольких дней после обновления.
Вывод
CVE-2026-89712 представляет собой серьёзную угрозу для систем, использующих NFS-сервер с межсерверным копированием. Уязвимость связана с ошибкой в управлении памятью и может привести к падению ядра или выполнению кода. Администраторам необходимо срочно обновить ядро до версии, содержащей исправление, и проверить работоспособность NFS-сервиса после обновления.
Официальные источники
- NVD — CVE-2026-89712
- FIRST EPSS — CVE-2026-89712
- NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSD: restart ssc_expire_umount walk after dropping nfsd_ssc_lock - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 14.09.2026 — Опубликована первая версия материала.
