Исследователи Qualys раскрыли CVE-2026-46333 — уязвимость в механизме проверки доступа ptrace ядра Linux. По оценке компании, баг присутствует в коде около шести лет и затрагивает все версии ядра, выпущенные до 14 мая 2026 года. Это уже четвёртая резонансная локальная уязвимость в Linux за несколько недель.

Проблема находится в функции __ptrace_may_access(), которая срабатывает в момент завершения процессов. При определённых условиях ядро пропускает стандартные проверки «dumpable» после того, как процесс освобождает своё отображение памяти. Это открывает короткое временное окно, в течение которого сторонний процесс может перехватить файловые дескрипторы завершающегося привилегированного процесса. Комбинируя эту логическую ошибку с системным вызовом pidfd_getfd(2), непривилегированный пользователь получает доступ к файлам, которые в норме доступны только root. Сам Линус Торвальдс в тексте патча объяснил природу бага: флаг dumpable исторически использовался в ptrace_may_access() для проверок, для которых он изначально не предназначался, в том числе для потоков, у которых никогда не было виртуальной памяти.

Ветка ядраВерсия с патчем
7.x7.0.8
6.18.x6.18.31
6.12.x6.12.89
6.6.x6.6.139
6.1.x6.1.173
5.15.x5.15.207
5.10.x5.10.256

Уязвимость получила неофициальное имя ssh-keysign-pwn по одному из основных векторов эксплуатации. Вспомогательный бинарник OpenSSH ssh-keysign применяется для аутентификации на основе хоста и обычно запускается с флагом setuid root: он открывает SSH-ключи хоста до того, как сбросить привилегии. Именно в этот момент атакующий может перехватить дескрипторы и прочитать приватные ключи. Помимо SSH-ключей, через тот же механизм доступен файл теневых паролей. Украденные ключи позволяют злоумышленнику выдавать себя за доверенные машины в инфраструктуре, а хэши паролей открывают путь к офлайн-перебору и повторному использованию учётных данных на других системах.

Баг в логике __ptrace_may_access() позволяет перехватывать файловые дескрипторы завершающихся привилегированных процессов.

ismagilov/iStock/Getty Images Plus
ismagilov/iStock/Getty Images Plus · Источник: ZDNet AI

Qualys опубликовала рабочий proof-of-concept эксплойт, подтвердив, что уязвимость воспроизводится надёжно, а не только в теории. Патч уже подготовлен: мейнтейнер стабильной ветки ядра Грег Кроа-Хартман выпустил обновления для нескольких поддерживаемых веток — 7.0.8, 6.18.31, 6.12.89, 6.6.139, 6.1.173, 5.15.207 и 5.10.256. Однако до большинства популярных дистрибутивов эти обновления пока не дошли.

До появления обновлённых пакетов в дистрибутивах доступны временные меры. Первая — ужесточить ограничения Yama ptrace командой sysctl kernel.yama.ptrace_scope=2: это блокирует эксплойт, но ломает часть инструментов отладки и мониторинга. Вторая — отключить host-based аутентификацию SSH и сам бинарник ssh-keysign на системах, где они не нужны. Это убирает основной вектор кражи ключей, но делает SSH недоступным, что для многих серверных конфигураций неприемлемо. Обе меры носят временный характер, и наиболее надёжным решением остаётся обновление ядра.