CVE-2025-39682

Linux Kernel

КРИТИЧЕСКИЙ

Вероятность (EPSS) 2.9%
Тяжесть (CVSS) CVSS 9.8
Дата обнаружения

2026-09-18

Профиль угрозы (Вектор)
Доступ
Сеть
Сложность
Низкая
Привилегии
Не требуются
Жертва
Бездействует
Строка: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Официальное описание

Linux Kernel contains an improper check for unusual or exceptional conditions vulnerability in the TLS receive path which allows a zero-length record retrieved from the rx_list to bypass the intended recvmsg() record-type handling, potentially causing subsequent TLS records to be processed using incorrect zero-copy and queuing assumptions. The impacted product(s) could be end-of-life (EoL) and/or end-of-service (EoS). Users are advised to discontinue use and/or transition to a supported version.

Технический анализ и план устранения

Суть уязвимости

CVE-2025-39682 представляет собой логическую ошибку в подсистеме TLS (Transport Layer Security) ядра Linux, возникающую при обработке входящих данных (receive path). Уязвимость заключается в некорректной проверке исключительных условий при извлечении записей из списка rx_list.

Когда из очереди извлекается запись нулевой длины, механизмы обработки в функции recvmsg() не срабатывают должным образом. Это позволяет «пропустить» стандартные проверки типов записей TLS. В результате последующие (валидные) записи TLS могут обрабатываться с использованием неверных предположений о состоянии очереди и механизмах zero-copy. Это может привести к нарушению целостности данных, повреждению памяти ядра или отказу в обслуживании (DoS). Проблема особенно актуальна для систем, использующих аппаратное или программное ускорение TLS на уровне ядра (kTLS).

Как исправить

Основным способом устранения является обновление ядра Linux до версии, содержащей официальный патч, который добавляет проверку на пустые записи в tls_sw_recvmsg.

  1. Обновите индекс пакетов вашего дистрибутива:
sudo apt-get update

  1. Установите последнюю доступную версию ядра:
sudo apt-get upgrade linux-image-generic

  1. Если вы используете специфическую ветку ядра (например, LTS), убедитесь, что применены патчи, исправляющие обработку rx_list в net/tls/tls_sw.c.

  2. После обновления необходимо перезагрузить систему для инициализации нового ядра:

sudo reboot

  1. Проверьте текущую версию ядра после перезагрузки:
uname -r

Временные меры

Если немедленное обновление ядра невозможно (например, система находится в статусе EoL/EoS), необходимо минимизировать риски путем отключения функционала kTLS.

  1. Выгрузите модуль ядра tls, если он используется:
sudo modprobe -r tls

  1. Внесите модуль в черный список (blacklist), чтобы предотвратить его автоматическую загрузку:
echo "blacklist tls" | sudo tee /etc/modprobe.d/disable-tls.conf

  1. Настройте приложения (например, Nginx, HAProxy) на использование TLS в пространстве пользователя (User-space TLS, библиотеки OpenSSL/GnuTLS) вместо ядерного ускорения. В конфигурационных файлах сервисов убедитесь, что опции вроде ktls установлены в значение off.

  2. Ограничьте права доступа к сетевым сокетам для недоверенных пользователей, чтобы предотвратить возможность манипуляции параметрами SOL_TLS.

Обсуждение и опыт коллег
0
Чтобы оставить комментарий, необходимо войти или зарегистрироваться.

Пока никто не поделился опытом.
Станьте первым!