SCTPhantom: 18-летняя уязвимость в SCTP-стеке Linux ведёт к root и побегу из контейнера
Исследователи из Tencent Zhuque Lab раскрыли уязвимость в подсистеме SCTP ядра Linux, получившую идентификатор CVE-2026-64564 и имя SCTPhantom. Это ошибка типа use-after-free, которая при выполненных условиях позволяет локальному пользователю поднять привилегии до root, а по утверждению авторов — и выбраться из контейнера на машину под ним.
В чём суть ошибки
SCTP — транспортный протокол, способный вести одно соединение сразу по нескольким сетевым путям. Дополнительная возможность динамической переконфигурации адресов позволяет собеседнику добавлять и убирать эти адреса прямо посреди сессии. Именно на этом стыке и живёт баг: ядро проверяет запрос на удаление по адресу-отправителю пакета, но действует над путём, выбранным по другому адресу внутри самого сообщения. Одно сообщение может нести адрес, удаление этого же адреса и «удаление по маске» — такая последовательность освобождает путь, а затем обращается к уже мёртвому указателю. Соединение остаётся указывающим на память, которую ядро успело вернуть системе.
Правка отклоняет удаление, нацеленное на тот путь, в контексте которого обрабатывается сообщение. Дефект уходит корнями в ядро 2.6.25 образца 2008 года и присутствует во всех выпусках с тех пор.
Масштаб и оговорки
Уязвимость локальная, а не удалённая, и требует, чтобы SCTP был доступен на цели, что сужает круг затронутых систем. Там, где эти условия выполнялись, лаборатория сообщает о получении root на сборках ядер для Debian 13, Ubuntu 24.04, Rocky Linux 9, RHEL 9 и OpenCloudOS.
Заявление о побеге из контейнера основано на собственных тестах Tencent. По словам лаборатории, тест сохранял стандартный профиль seccomp и не выдавал ни CAP_NET_ADMIN, ни CAP_SYS_ADMIN; из восьми попыток шесть достигли root на хосте. Ранняя версия эксплойта требовала включённых sysctl'ов addip, но затем нашёлся путь, включающий нужные возможности на уровне сокета. Вне лаборатории результаты пока никто не воспроизвёл, а название использованного рантайма не раскрывается. Advisory дистрибутива openKylin по тому же багу ограничивается лишь паникой ядра и отказом в обслуживании.
Оценка серьёзности тоже неустоявшаяся: Tencent выставил 8.5 по CVSS v4.0, тогда как NVD на 7 августа не присвоил ни балла, ни классификации слабости. Публичного кода эксплойта на момент публикации не было, в каталоге CISA KEV запись отсутствовала.
Что делать
Исправление уже вышло: стабильные ядра 7.1.6, 6.18.42, 6.12.101 и 6.6.148 от 3 августа закрывают проблему. Поскольку вендоры часто бэкпортируют правки без смены версии, ориентироваться на одну лишь строку версии не стоит — проверяйте трекер своего дистрибутива. Где SCTP не нужен, блокировка модуля убирает поверхность атаки целиком.
Любопытная деталь: находку Tencent приписывает Corvus AI — собственному многоагентному конвейеру для работы с ядром, что делает SCTPhantom очередной давно дремавшей уязвимостью, поднятой с помощью машин в этом году.
Источник: The Hacker News
Комментарии
Войдите, чтобы комментировать.