CVE-2026-89538 в Linux Kernel: критический риск в SUNRPC, уязвимые версии и защита

CVE: CVE-2026-89538
Продукт: Linux Kernel
Дата публикации: 11.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,70%; процентиль 51,42%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


В подсистеме SUNRPC ядра Linux обнаружена уязвимость, позволяющая нарушителю с валидным GSS-контекстом отправить сформированный Kerberos v2 токен, который приводит к некорректной обработке буфера. Это может вызвать отказ в обслуживании или нарушение целостности данных. Статья разбирает механику ошибки, условия эксплуатации и способы проверки исправления.

Основные характеристики​


Риск связан с некорректной валидацией структуры токена Kerberos v2 в функции обработки GSS-обёрток. При определённых условиях это может привести к нарушению целостности данных или отказу в обслуживании.

  • CVSS 3.1: 9.8 (CRITICAL) — максимальный уровень критичности, вектор CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
  • EPSS: 0,70% (процентиль 51,42%) — вероятность эксплуатации в ближайшие 30 дней оценивается как низкая.
  • CISA KEV: отсутствует в каталоге — уязвимость не признана активно эксплуатируемой.
  • Статус: Received — запись в NVD находится на этапе первичной обработки.

Какие продукты и версии затронуты​


Затронуты версии ядра Linux, в которых отсутствует исправление, добавленное в коммите ad484748eec0a66eac0f13ab53b3fbedb7333c91. Конкретные номера версий дистрибутивов в предоставленных источниках не раскрыты. Рекомендуется свериться с официальными уведомлениями вашего поставщика.

Причина уязвимости​


Функция gss_krb5_unwrap_v2() устанавливает buf->len на логическую длину, которая может быть меньше фактической ёмкости страницы. Далее вызывается xdr_buf_trim() с длиной, вычисленной из поля ec (extra count) в заголовке токена.

Поле ec аутентифицируется, но валидный участник сессии может зашифровать токен с ec, превышающим длину открытого текста. Хотя xdr_buf_trim() предотвращает подтекание беззнакового числа, буфер остаётся в некорректном состоянии (нулевая длина, несогласованные iov-длина).

Как работает атака​


Нарушитель, обладающий валидным GSS-контекстом, отправляет токен Kerberos v2, в котором поле ec превышает фактическую длину полезной нагрузки. Из-за отсутствия проверки на соответствие ec доступной длине сегмента, функция xdr_buf_trim() получает некорректный параметр.

Это приводит к тому, что буфер xdr_buf переходит в семантически невалидное состояние, что может нарушить последующую обработку данных или вызвать сбой.

Условия успешной эксплуатации​


Для успешной эксплуатации необходимо наличие валидного GSS-контекста (Kerberos v2) и возможность отправки сформированного токена на уязвимый узел. Атака возможна по сети (AV:N) без необходимости дополнительных привилегий (PR:N) и взаимодействия пользователя (UI:N).

Возможный сценарий атаки​


Атакующий устанавливает соединение с сервисом, использующим SUNRPC и Kerberos v2. Он отправляет специально сформированный токен, в котором поле ec превышает допустимые пределы.

Ядро обрабатывает токен, и из-за отсутствия проверки происходит некорректное изменение состояния буфера. В результате сервис может завершиться с ошибкой или начать обрабатывать повреждённые данные.

Есть ли публичный эксплойт​


В предоставленных источниках отсутствуют сведения о публичных PoC или подтверждённой эксплуатации в реальных атаках. Наличие исправления в стабильных ветках ядра указывает на то, что проблема была обнаружена и устранена до массового использования.

Признаки эксплуатации​


Специфичные IOC для этой уязвимости в источниках не указаны. Общие признаки могут включать неожиданные сбои сервисов, использующих SUNRPC, или ошибки в логах Kerberos-аутентификации. Эти признаки неспецифичны и требуют дополнительной проверки.

Как обнаружить атаку​


Для обнаружения атаки рекомендуется анализировать логи сервисов, использующих SUNRPC, на предмет ошибок GSS-аутентификации. Также полезно отслеживать аномальные завершения процессов, связанных с обработкой Kerberos-токенов. Специфичные сигнатуры для этой уязвимости в источниках не предоставлены.

Как проверить свою версию​


Для проверки версии ядра используйте команды: uname -r, uname -a, cat /proc/version. Сравните полученную версию с официальными списками исправлений вашего дистрибутива Linux. Если версия содержит коммит ad484748eec0a66eac0f13ab53b3fbedb7333c91, система защищена.

Исправление​


Основной способ устранения — обновление ядра Linux до версии, содержащей исправление. Для стабильных веток это коммит ad484748eec0a66eac0f13ab53b3fbedb7333c91. Проверьте, что ваш дистрибутив выпустил обновление, и установите его через штатные средства управления пакетами.

Временные меры защиты​


Пока обновление не установлено, можно ограничить доступ к сервисам, использующим SUNRPC с Kerberos v2, через сетевые экраны. Также рекомендуется отключить использование Kerberos v2 в SUNRPC, если это позволяет конфигурация. Эти меры снижают, но не устраняют риск полностью.

Как проверить устранение уязвимости​


После обновления проверьте версию ядра с помощью uname -r. Убедитесь, что в логах ядра нет ошибок, связанных с обработкой GSS-токенов. Проведите функциональное тестирование сервисов, использующих SUNRPC, для подтверждения их работоспособности.

Вывод​


CVE-2026-89538 представляет серьёзный риск для систем, использующих SUNRPC с Kerberos v2. Обновление ядра до версии с исправлением является обязательным шагом. До применения патча рекомендуется ограничить сетевой доступ к уязвимым сервисам и мониторить логи на предмет аномальной активности.

Официальные источники​


  1. NVD — CVE-2026-89538
  2. FIRST EPSS — CVE-2026-89538
  3. SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field - kernel/git/stable/linux.git - Linux kernel stable tree
  4. SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field - kernel/git/stable/linux.git - Linux kernel stable tree
  5. SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field - kernel/git/stable/linux.git - Linux kernel stable tree
  6. SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field - kernel/git/stable/linux.git - Linux kernel stable tree
  7. SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field - kernel/git/stable/linux.git - Linux kernel stable tree
  8. SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field - kernel/git/stable/linux.git - Linux kernel stable tree
  9. SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field - kernel/git/stable/linux.git - Linux kernel stable tree
  10. SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field - kernel/git/stable/linux.git - Linux kernel stable tree

История обновлений статьи​


  • 16.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ