CVE: CVE-2026-90151
Продукт: Linux Kernel
Дата публикации: 17.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,74%; процентиль 53,07%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В подсистеме NFSv4 ядра Linux обнаружен дефект жизненного цикла объекта
nfs_client. При сбое инициализации клиента в таблице cb_ident_idr остается висящая ссылка на освобожденную память.Последующий поиск колбэка по этому идентификатору приводит к обращению к невалидной памяти. Материал описывает механику дефекта, условия эксплуатации и порядок проверки исправления.
Основные характеристики
Риск связан с обращением к освобожденной памяти (use-after-free) в подсистеме NFSv4. Дефект возникает на этапе инициализации клиента и может проявиться при обработке колбэков.
- Тип ошибки: Use-after-free в структуре
nfs_client.
- CVSS: 9.8 (CRITICAL). Вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Оценки отражают сетевой доступ без аутентификации и максимальное влияние на конфиденциальность, целостность и доступность.
- Эксплуатация: В каталоге CISA KEV подтверждений о массовой эксплуатации нет.
- EPSS: 0,74% (процентиль 53,07%). Вероятность эксплуатации в ближайшие 30 дней оценивается как умеренная.
Какие продукты и версии затронуты
Уязвимость затрагивает модуль NFSv4 в ядре Linux. Патч принят в основную ветку и распространяется в stable-ветки.
- Основная ветка: 6.16 и выше (исправление включено в основной поток разработки).
- Stable-ветки: 6.12.x, 6.11.x, 6.6.x, 6.1.x, 5.15.x, 5.10.x, 5.4.x.
Точные номера пакетов для конкретных дистрибутивов (Debian, Ubuntu, RHEL и др.) необходимо проверять в официальных базах данных безопасности соответствующих вендоров.
Причина уязвимости
Причина дефекта — нарушение порядка освобождения ресурсов в функции
nfs4_alloc_client(). При инициализации клиента NFSv4.0 система выделяет идентификатор колбэка (cb_ident) и регистрирует его в таблице cb_ident_idr.Если на последующих этапах инициализации возникает ошибка, срабатывает путь обработки ошибок, который вызывает
nfs_free_client(). Эта функция освобождает память объекта nfs_client, но не удаляет запись из таблицы cb_ident_idr. Удаление записи происходит только в функции nfs_put_client(), которая в данном сценарии не вызывается.В результате в таблице
cb_ident_idr остается висящая ссылка (stale pointer) на уже освобожденную память. Это классический сценарий use-after-free.Как работает атака
Атакующий может инициировать создание NFSv4-клиента, которое завершится ошибкой на этапе инициализации. В этот момент в таблице
cb_ident_idr останется запись, указывающая на освобожденную память объекта nfs_client.Позднее, при обработке входящего колбэка NFSv4.0, система выполняет поиск клиента по
cb_ident. Если атакующий сможет предугадать или подобрать значение cb_ident, система найдет висящую ссылку и попытается взять на нее ссылку (take a reference). Это приведет к обращению к освобожденной памяти, что может быть использовано для выполнения произвольного кода в контексте ядра.Условия успешной эксплуатации
Для успешной эксплуатации уязвимости атакующему необходимо:
- Сетевой доступ к хосту, на котором работает NFSv4-клиент.
- Возможность инициировать создание NFSv4-клиента, которое завершится ошибкой (например, через отправку специально сформированных пакетов).
- Контроль над значением
cb_identили возможность предугадать его, чтобы система нашла висящую ссылку в таблицеcb_ident_idr.
Возможный сценарий атаки
Атакующий отправляет запрос на создание NFSv4-клиента. В процессе инициализации возникает ошибка (например, из-за некорректных параметров или исчерпания ресурсов). Клиент освобождается, но запись в
cb_ident_idr не удаляется.Затем атакующий отправляет колбэк-запрос с
cb_ident, совпадающим с оставшимся значением. Система находит висящую ссылку и обращается к освобожденной памяти. Атакующий использует это для выполнения произвольного кода с привилегиями ядра.Есть ли публичный эксплойт
Публичный эксплойт для CVE-2026-90151 не опубликован. В каталоге CISA KEV подтверждений о массовой эксплуатации нет. Уязвимость была обнаружена статическим анализатором и подтверждена вручную, что повышает вероятность появления эксплойтов в будущем.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для CVE-2026-90151 не опубликованы. Общие точки контроля (неспецифичные):
- Аномальные колбэк-запросы NFSv4 с подозрительными значениями
cb_ident.
- Сегфолты или ошибки ядра в модуле NFSv4, связанные с обращением к невалидной памяти.
- Необычная активность в процессах, связанных с NFSv4, особенно при попытках создания клиентов, которые завершаются ошибкой.
Как обнаружить атаку
Для обнаружения атаки можно использовать:
- Мониторинг журналов ядра на предмет ошибок в модуле NFSv4, особенно связанных с
nfs4_alloc_clientилиcb_ident_idr.
- Сетевой анализ для выявления аномальных колбэк-запросов NFSv4 с подозрительными значениями
cb_ident.
- Инструменты динамического анализа (например, KASAN) для выявления обращений к освобожденной памяти в модуле NFSv4.
Как проверить свою версию
Для проверки версии ядра и наличия патча используйте:
Bash:
uname -r
uname -a
cat /proc/version
Сравните версию ядра с официальными списками исправленных версий от вашего дистрибутива. Если версия ядра ниже 6.16 или не входит в исправленные stable-ветки, система уязвима.
Исправление
Единственный надежный способ устранения уязвимости — обновление ядра до версии, содержащей патч.
- Основная ветка: 6.16 и выше.
- Stable-ветки: 6.12.x, 6.11.x, 6.6.x, 6.1.x, 5.15.x, 5.10.x, 5.4.x.
Обновите ядро через пакетный менеджер вашего дистрибутива. После обновления перезагрузите систему, чтобы загрузить новое ядро.
Временные меры защиты
Временные меры защиты:
- Ограничение сетевого доступа к хостам, где работает NFSv4-клиент, доверенным IP-адресам.
- Отключение NFSv4 на хостах, где это возможно, до установки патча.
- Использование сетевых экранов для фильтрации колбэк-запросов NFSv4 с подозрительными значениями
cb_ident.
Как проверить устранение уязвимости
Для проверки успешного применения патча:
- Проверьте версию ядра с помощью
uname -rи убедитесь, что она соответствует исправленной версии.
- Проверьте наличие патча в исходном коде ядра, если вы компилируете ядро самостоятельно. Ищите коммит
d05c2007b3d84ccba11dc6e9cb3202768cc72f14.
- Проведите тестирование NFSv4-клиента, чтобы убедиться, что ошибки инициализации обрабатываются корректно и не приводят к висящим ссылкам.
Вывод
CVE-2026-90151 — критическая уязвимость в модуле NFSv4 ядра Linux, позволяющая атакующему получить полный контроль над системой. Обновление ядра до исправленной версии является обязательным.
Временные меры защиты могут снизить риск, но не заменяют патч. Регулярно проверяйте обновления от вашего дистрибутива и применяйте их своевременно.
Официальные источники
- NVD — CVE-2026-90151
- FIRST EPSS — CVE-2026-90151
- NFSv4: remove callback IDR entry on client allocation failure - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSv4: remove callback IDR entry on client allocation failure - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSv4: remove callback IDR entry on client allocation failure - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSv4: remove callback IDR entry on client allocation failure - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSv4: remove callback IDR entry on client allocation failure - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSv4: remove callback IDR entry on client allocation failure - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSv4: remove callback IDR entry on client allocation failure - kernel/git/stable/linux.git - Linux kernel stable tree
- NFSv4: remove callback IDR entry on client allocation failure - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 20.09.2026 — Опубликована первая версия материала.
