CVE: CVE-2026-64598
Продукт: Linux Kernel
Дата публикации: 06.08.2026
Критичность: HIGH
CVSS: 8.8 (3.1)
EPSS: 0,28%; процентиль 20,35%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-64598 затрагивает компонент Linux Kernel, связанный с обработкой ошибок в SMB-клиенте. Проблема возникает при использовании макроса ERR_PTR() с переменной типа u32, что приводит к некорректной работе и потенциальному сбою ядра. Уязвимость классифицирована как высокая по шкале CVSS (8.8) и затрагивает функцию smb2_aead_req_alloc() в модуле SMB-клиента.
Основные характеристики
Уязвимость связана с некорректной обработкой кода ошибки в функции smb2_aead_req_alloc(), используемой при работе с SMB-протоколом. В результате неправильного применения макроса ERR_PTR() с переменной типа u32 происходит сбой при обращении к недопустимому указателю. Это может привести к крашу ядра при определённых условиях. Исправление вносится в модуль fs/smb/client/smb2ops.c. Изменение касается логики обработки возвращаемого значения функции cifs_get_num_sgs().
Какие продукты и версии затронуты
Уязвимость затрагивает Linux Kernel версий, где используется SMB-клиент и применяется функция smb2_aead_req_alloc(). Конкретные версии, в которых проявляется проблема, не указаны в источниках. Исправление было включено в стабильное дерево ядра. Системы, использующие SMBv2 или SMBv3 для доступа к сетевым ресурсам, могут быть уязвимы. Уязвимость не распространяется на все версии ядра, а затрагивает конкретные изменения в SMB-клиенте.
Причина уязвимости
Основная причина — неправильное использование макроса ERR_PTR() с переменной типа u32. Переменная *num_sgs имеет тип unsigned int (u32), и передача её в ERR_PTR() создаёт некорректный указатель. При дальнейшем обращении к этому указателю происходит сбой. В исправлении переменная *num_sgs заменяется на временную переменную int ret, которая корректно проверяется на отрицательное значение перед использованием.
Как работает атака
Атака возможна при условии, что система использует SMB-протокол и вызывает функцию smb2_aead_req_alloc(). В случае ошибки в функции cifs_get_num_sgs(), возвращаемое значение передаётся в ERR_PTR() неправильно. Это приводит к созданию недопустимого указателя, который затем может быть передан в дальнейшие функции. Если система не обрабатывает ошибку должным образом, это может привести к крашу ядра. Атакующий должен иметь возможность инициировать вызов функции, связанной с SMB-запросами.
Условия успешной эксплуатации
Для эксплуатации уязвимости необходима система, работающая с SMB-протоколом и использующая функции, связанные с smb2_aead_req_alloc(). Требуется, чтобы вызов функции cifs_get_num_sgs() завершался ошибкой. Уязвимость не является активной сама по себе, но может быть использована в составе более сложной атаки, если система не обрабатывает ошибки корректно. Необходимо, чтобы система была скомпилирована с поддержкой SMB-клиента.
Возможный сценарий атаки
Сценарий атаки предполагает, что злоумышленник инициирует SMB-запрос, который приводит к вызову функции smb2_aead_req_alloc(). В процессе выполнения происходит ошибка в функции cifs_get_num_sgs(), и возвращаемое значение передаётся в ERR_PTR() неправильно. Это приводит к созданию некорректного указателя, который затем используется в дальнейшем коде. Если система не обрабатывает ошибку корректно, это может привести к крашу ядра. Такой сценарий может быть использован в DoS-атаках.
Есть ли публичный эксплойт
В доступных источниках не указано наличие публичного эксплойта или PoC для уязвимости CVE-2026-64598. Информация о том, что уязвимость уже эксплуатируется в реальных атаках, также отсутствует. Системы, которые не используют SMB-протокол, не подвержены этой уязвимости. Отсутствие специфичных данных о эксплуатации не означает отсутствие потенциального риска, но требует дополнительного анализа.
Признаки эксплуатации
Признаки компрометации в данной уязвимости не являются специфичными. В случае эксплуатации можно наблюдать сбои ядра или краши систем, связанные с SMB-запросами. Общие точки контроля включают мониторинг журналов ядра на наличие сообщений об ошибках SMB, а также анализ активности SMB-клиентов. Наличие необычных паттернов в логах сетевых соединений или ошибок в системных журналах может указывать на возможное использование уязвимости.
Как обнаружить атаку
Обнаружение уязвимости возможно через анализ версий ядра и наличия изменений в коде SMB-клиента. Проверка на наличие исправления может быть выполнена с помощью команд, таких как uname -r, и сравнения с известными версиями, содержащими исправление. Также можно проверить наличие изменений в файле fs/smb/client/smb2ops.c. В случае отсутствия исправления, система может быть уязвимой. Рекомендуется также анализировать логи ядра на наличие ошибок SMB и необычных поведений при работе с сетевыми ресурсами.
Как проверить свою версию
Для проверки версии ядра, в которой устранена уязвимость CVE-2026-64598, можно использовать следующие команды:
Bash:
uname -r
Bash:
uname -a
Bash:
cat /proc/version
Все указанные команды позволяют получить информацию о текущей версии ядра и сравнить её с версиями, содержащими исправление. Для получения точных данных о наличии исправления рекомендуется обратиться к официальным источникам или использовать систему управления пакетами для проверки установленных обновлений.
Исправление
Исправление уязвимости CVE-2026-64598 включает изменение логики обработки ошибок в функции smb2_aead_req_alloc(). Вместо неправильного использования ERR_PTR() с переменной типа u32, теперь используется временная переменная int ret, которая корректно проверяется на отрицательное значение. Это позволяет избежать сбоев при обращении к недопустимому указателю. Рекомендуется обновить ядро до версии, в которой внесено исправление. Обновление должно быть выполнено с учётом всех рекомендаций по безопасности и тестированию.
Временные меры защиты
Временные меры защиты от уязвимости CVE-2026-64598 могут включать ограничение доступа к SMB-ресурсам, отключение SMB-клиента, если он не используется. Также можно отключить SMB-протокол в системе или ограничить его использование через брандмауэр. Рекомендуется также отслеживать журналы ядра на предмет ошибок SMB и других аномалий. Эти меры не устраняют уязвимость напрямую, но могут снизить риск эксплуатации.
Как проверить устранение уязвимости
После применения исправления рекомендуется проверить, что изменения внесены в файл fs/smb/client/smb2ops.c. Также можно выполнить команду uname -r и сравнить результат с версией, в которой исправление уже включено. Проверка логов ядра на наличие ошибок SMB также может подтвердить успешное применение исправления. Рекомендуется также провести тестирование функциональности SMB-клиента для подтверждения отсутствия сбоев.
Вывод
Уязвимость CVE-2026-64598 в Linux Kernel представляет собой ошибку в обработке кода ошибки в SMB-клиенте. Она возникает при неправильном использовании макроса ERR_PTR() с переменной типа u32. Исправление включает изменение логики обработки возвращаемого значения функции cifs_get_num_sgs(). Уязвимость может привести к крашу ядра при определённых условиях. Рекомендуется обновить ядро до версии, в которой исправление уже включено. Временные меры защиты могут включать ограничение использования SMB-протокола.
Официальные источники
- NVD — CVE-2026-64598
- FIRST EPSS — CVE-2026-64598
- smb/client: Fix error code in smb2_aead_req_alloc() - kernel/git/stable/linux.git - Linux kernel stable tree
- smb/client: Fix error code in smb2_aead_req_alloc() - kernel/git/stable/linux.git - Linux kernel stable tree
- smb/client: Fix error code in smb2_aead_req_alloc() - kernel/git/stable/linux.git - Linux kernel stable tree
- smb/client: Fix error code in smb2_aead_req_alloc() - kernel/git/stable/linux.git - Linux kernel stable tree
- smb/client: Fix error code in smb2_aead_req_alloc() - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 11.08.2026 — Опубликована первая версия материала.
