Исследователи Qualys раскрыли CVE-2026-46333 — уязвимость в механизме проверки доступа ptrace ядра Linux. По оценке компании, баг присутствует в коде около шести лет и затрагивает все версии ядра, выпущенные до 14 мая 2026 года. Это уже четвёртая резонансная локальная уязвимость в Linux за несколько недель.
Проблема находится в функции __ptrace_may_access(), которая срабатывает в момент завершения процессов. При определённых условиях ядро пропускает стандартные проверки «dumpable» после того, как процесс освобождает своё отображение памяти. Это открывает короткое временное окно, в течение которого сторонний процесс может перехватить файловые дескрипторы завершающегося привилегированного процесса. Комбинируя эту логическую ошибку с системным вызовом pidfd_getfd(2), непривилегированный пользователь получает доступ к файлам, которые в норме доступны только root. Сам Линус Торвальдс в тексте патча объяснил природу бага: флаг dumpable исторически использовался в ptrace_may_access() для проверок, для которых он изначально не предназначался, в том числе для потоков, у которых никогда не было виртуальной памяти.
| Ветка ядра | Версия с патчем |
|---|---|
| 7.x | 7.0.8 |
| 6.18.x | 6.18.31 |
| 6.12.x | 6.12.89 |
| 6.6.x | 6.6.139 |
| 6.1.x | 6.1.173 |
| 5.15.x | 5.15.207 |
| 5.10.x | 5.10.256 |
Уязвимость получила неофициальное имя ssh-keysign-pwn по одному из основных векторов эксплуатации. Вспомогательный бинарник OpenSSH ssh-keysign применяется для аутентификации на основе хоста и обычно запускается с флагом setuid root: он открывает SSH-ключи хоста до того, как сбросить привилегии. Именно в этот момент атакующий может перехватить дескрипторы и прочитать приватные ключи. Помимо SSH-ключей, через тот же механизм доступен файл теневых паролей. Украденные ключи позволяют злоумышленнику выдавать себя за доверенные машины в инфраструктуре, а хэши паролей открывают путь к офлайн-перебору и повторному использованию учётных данных на других системах.
Баг в логике __ptrace_may_access() позволяет перехватывать файловые дескрипторы завершающихся привилегированных процессов.

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 недоступным, что для многих серверных конфигураций неприемлемо. Обе меры носят временный характер, и наиболее надёжным решением остаётся обновление ядра.



