Уязвимость в протоколе SCTP ядра Linux позволяет повысить привилегии до root и выйти из контейнера

linux

Исследователи из Tencent Zhuque Lab обнаружили в ядре Linux уязвимость, связанную с обработкой протокола SCTP (протокол управления потоком передачи данных). Ошибка получила идентификатор CVE-2026-64564 и имя SCTPhantom. Она позволяет локальному атакующему повысить привилегии до root, а при определенных условиях - выйти за пределы контейнера и получить доступ к хост-системе. Разработчики ядра уже выпустили исправление, однако проблема существует около восемнадцати лет и затрагивает широкий спектр дистрибутивов.

Уязвимость SCTPhantom (CVE-2026-64564)

SCTP - это транспортный протокол, поддерживающий multihoming, то есть возможность одновременного использования нескольких сетевых путей для одного соединения. Для управления этими путями применяется механизм динамической реконфигурации адресов (ASCONF). Уязвимость кроется в логике обработки последовательностей ASCONF-сообщений, в частности операций удаления IP-адресов (DEL-IP).

Суть ошибки: при обработке специально сформированного ASCONF-сообщения возникает расхождение между адресом, используемым для проверки подлинности запроса, и адресом, который выбирается для последующих операций. Из-за этого атакующий может удалить объект, отвечающий за сетевой путь, при этом в структуре соединения останется устаревшая ссылка на уже освобожденную область памяти. Последующие операции с сокетом обращаются к этой памяти, что приводит к состоянию use-after-free (обращение к освобожденной памяти). Это классический тип уязвимости, который обычно позволяет выполнить произвольный код в контексте ядра или нарушить его работу.

Для эксплуатации требуется локальный доступ к системе. Потенциальная атака может привести к полному захвату управления над ядром. Исследователи Corvus AI - проекта, разработанного TencentOS Security Team, - не только подтвердили наличие уязвимости, но и построили на её основе полноценную цепочку повышения привилегий. Они продемонстрировали получение root-доступа на нескольких протестированных системах: Debian 13, Ubuntu 24.04, Rocky Linux 9 и производных от RHEL 9, а также на системах семейства OpenCloudOS и одной из тестовых версий ядра Linux 7.2.

Особую опасность представляет возможность побега из контейнера. Поскольку контейнеры используют общее ядро хост-системы, эксплуатация уязвимости ядра изнутри контейнера может скомпрометировать весь хост. В проведённом исследовании побег был успешно реализован даже при стандартном профиле seccomp (механизм ограничения системных вызовов) и без выдачи контейнеру дополнительных привилегий, таких как CAP_NET_ADMIN или CAP_SYS_ADMIN. Это означает, что атакующий, получивший доступ к контейнеру, потенциально способен преодолеть его изоляцию.

Впрочем, практическая эксплуатация в разных окружениях может существенно различаться. На неё влияют такие факторы, как наличие поддержки SCTP в ядре, разрешения на работу с сетевыми и пакетными сокетами, настройки пространств имён, политики модулей безопасности Linux (LSM), ограничения со стороны системы запуска контейнеров и, конечно, версия ядра и статус установленных исправлений. Исследователи подчёркивают, что на разных дистрибутивах уязвимость может быть закрыта с помощью бэкпортов - переноса исправлений на старые версии ядра. Поэтому администраторам не стоит полагаться только на номер версии ядра при оценке степени угрозы, необходимо проверять бюллетени безопасности конкретного вендора.

Причина уязвимости восходит к изменениям, внесённым в ядро ещё в версии Linux 2.6.25, выпущенной в 2008 году. В тот момент была добавлена логика обработки подстановочных (wildcard) операций удаления адресов. Именно эта логика в сочетании с более поздними изменениями привела к появлению уязвимого сценария. Таким образом, SCTPhantom оставался в ядре около восемнадцати лет, что подчёркивает важность ревизии кода протоколов, которые редко подвергаются проверкам безопасности.

Исправление было внесено в основную ветку ядра в коммите 9b2854f86f0b. Оно отклоняет удаление сетевого пути, который уже сохранён для последующей обработки ASCONF-сообщения. Первые исправленные версии включают Linux 6.6.148, 6.12.101, 6.18.42, 7.1.6 и mainline 7.2-rc5. Вендорские ядра могут получать исправления в виде бэкпортов, поэтому важно сверяться с официальными сообщениями о безопасности дистрибутива.

Организациям рекомендуется как можно скорее установить обновление ядра и перезагрузить затронутые хосты. В качестве дополнительной меры защиты стоит отключить модуль SCTP, если он не используется, ограничить доступ к локальным рабочим нагрузкам и пересмотреть политики, предоставляющие контейнерам сетевые возможности. Уязвимость затрагивает широкий круг систем, включая серверы и облачную инфраструктуру, где SCTP может применяться для передачи данных в телекоммуникационных и высоконагруженных средах. Разработчики ядра уже устранили проблему, и теперь ключевая задача - своевременно распространить исправление на все затронутые системы.

Ссылки

Комментарии: 0