Исследователи из компании Qualys обнаружили в ядре Linux ошибку, которая позволяет локальному пользователю без особых привилегий читать закрытые ключи SSH и хэши паролей из файла /etc/shadow. Проблема скрывалась в системной функции проверки прав доступа между процессами как минимум с 2020 года и оставалась незамеченной на протяжении шести лет. Уязвимость, получившая название ssh-keysign-pwn и идентификатор CVE-2026-46333, затрагивает все стабильные версии ядра вплоть до 14 мая 2026 года.
Корень проблемы лежит в функции __ptrace_may_access(), которая управляет возможностью одного процесса отслеживать или проверять другой процесс. В определённый момент завершения работы высокопривилегированного процесса ядро сначала освобождает его память, но оставляет открытыми файловые дескрипторы. Злоумышленник, действующий из-под обычной учётной записи, может перехватить эти дескрипторы с помощью системного вызова pidfd_getfd. Для успешной атаки нападающему не требуются права суперпользователя или дополнительные разрешения, достаточно совпадения идентификатора пользователя с целевым процессом.
Основные векторы атак связаны со штатными утилитами OpenSSH. Первая из них — ssh-keysign, вспомогательная программа для аутентификации на основе хоста. Этот двоичный файл запускается с правами root, открывает закрытые ключи SSH, а затем сбрасывает привилегии. Атакующий в узком временном окне может украсть дескрипторы этих ключей и извлечь содержимое файлов ssh_host_ecdsa_key, ssh_host_ed25519_key и ssh_host_rsa_key. Вторая цель — утилита chage, предназначенная для управления сроками действия паролей. Она также открывает файл /etc/shadow, содержащий хэши паролей всех пользователей системы, и сбрасывает привилегии. Атака на оба процесса стабильно воспроизводится после 100-2000 попыток.
Специалист по безопасности Джанн Хорн из Google ещё в октябре 2020 года обратил внимание на похожую проблему с кражей дескрипторов файлов. Он написал сообщение в почтовую рассылку ядра Linux. Однако ошибка оставалась неисправленной в течение следующих шести лет, пока группа Qualys не продемонстрировала практическую реализацию атаки.
В течение нескольких часов после того, как Линус Торвальдс принял исправление, в открытом доступе появились две работающие программы-эксплойта. Их опубликовал пользователь «_SiCk» на платформе GitHub. Первая программа, sshkeysign_pwn, нацелена на ssh-keysign, вторая, chage_pwn, читает содержимое файла /etc/shadow. Появление этих инструментов значительно снижает порог для проведения атаки на незащищённых системах.
Круг затронутых дистрибутивов широк. В уязвимом состоянии находятся все стабильные выпуски Linux, вышедшие до 14 мая 2026 года. Подтверждённые списки включают Ubuntu, Debian, Arch Linux, CentOS, AlmaLinux, Rocky Linux и даже Raspberry Pi OS. Разработчики всех этих систем сейчас занимаются бэкпортированием исправления в свои репозитории.
Линус Торвальдс оперативно отреагировал на сообщение о проблеме. Он внёс изменения в логику работы ptrace в тот же день, 14 мая 2026 года, под коммитом 31e62c2ebbfd. В комментарии к патчу он пояснил, что старый код использовал проверки флага dumpable для потоков, у которых нет активной виртуальной памяти, что не соответствовало первоначальному замыслу. Новый код восстанавливает правильные проверки даже в этих пограничных случаях.
Вслед за исправлением в главной ветке вышли обновлённые стабильные версии ядра. В этот же день были выпущены ядра 7.0.8, 6.18.31, 6.12.89, 6.6.139, 6.1.173, 5.15.207 и 5.10.256. Каждое из этих обновлений содержит только один патч — для устранения уязвимости ssh-keysign-pwn. Администраторам систем рекомендуется как можно быстрее установить эти обновления. До установки патча можно ограничить риск путём запрета локального доступа для недоверенных пользователей и настройки ограничений на ptrace через политики безопасности.
Данная уязвимость стала четвёртой критической проблемой в ядре Linux за последние несколько недель. До неё сообщество боролось с багами под названиями Dirty Frag, Fragnesia и Copy Fail. Каждая из этих проблем позволяла локальному непривилегированному пользователю повысить свои права в системе до уровня суперпользователя. Появление такого количества уязвимостей за короткий срок указывает на растущую сложность обеспечения безопасности в современных ядрах операционных систем.