Последняя уязвимость ядра Linux не имеет причудливого названия; её просто называют «ssh‑keysign‑pwn». Это уже четвёртая громкая локальная дыра в безопасности, поразившая Linux всего за несколько недель. Эта позволяет обычным пользователям тихо читать некоторые из самых конфиденциальных файлов в системе, включая закрытые ключи хоста Secure Shell (SSH) и файл теневых паролей.

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

Исследователи безопасности из компании Qualys раскрыли CVE‑2026‑46333, уязвимость раскрытия информации в проверке доступа ptrace ядра Linux. Qualys утверждает, что она существовала в той или иной форме около шести лет.

Ошибка находится в логике __ptrace_may_access(), которая выполняется при завершении процессов. При определённых условиях ядро пропускает обычные проверки «дампности» после того, как процесс сбросил своё отображение памяти. Это открывает краткое окно для другого процесса, чтобы украсть его файловые дескрипторы.

Хотя ssh‑keysign‑pwn сам по себе не даёт полную root-оболочку, возможность извлечения ключей хоста и хэшей паролей является мощным строительным блоком для бокового перемещения и долгосрочного закрепления. Кроме того, с украденными SSH-ключами хоста злоумышленники могут выдавать себя за машины в доверительных отношениях на основе хоста. С доступом к каталогу теневых паролей они могут попытаться взломать пароли офлайн и повторно использовать эти учётные данные в других системах.

В своём патче Линус Торвальдс объяснил, что проблема существует, потому что «У нас есть один странный особый случай: ptrace_may_access() использует „дампность“ для проверки различных других вещей, полностью независимо от MM (обычно явно используя флаги типа PTRACE_MODE_READ_FSCREDS). Включая потоки, у которых больше нет VM (и, возможно, никогда не было, как у большинства потоков ядра). Это не то, для чего был предназначен этот флаг, но так уж сложилось».

Что это означает для вас и меня: комбинируя эту логическую ошибку с системным вызовом pidfd_getfd(2), непривилегированные пользователи могут проникнуть в привилегированные процессы, которые находятся в процессе завершения, захватить их всё ещё открытые файловые дескрипторы, а затем читать файлы, которые обычно доступны только root.

Хорошая новость в том, что исправление уже вышло. Мейнтейнер стабильной версии Linux Грег Кроа-Хартман уже выпустил обновления для нескольких поддерживаемых веток, включая новые релизы, такие как 7.0.8, 6.18.31, 6.12.89, 6.6.139, 6.1.173, 5.15.207 и 5.10.256, все из которых содержат исправление ssh‑keysign‑pwn. Вам стоит перейти на одно из этих ядер как можно скорее. Эта дыра затрагивает все ядра Linux, выпущенные до 14 мая 2026 года.

Пока исправленные ядра не станут широко доступны, у команд безопасности есть несколько вариантов смягчения, но каждый сопряжён с компромиссами. Один быстрый и грязный обходной путь — ужесточить ограничения ptrace Yama в Linux, что отключает ptrace для непривилегированных пользователей и блокирует эксплойт, но также ломает многие рабочие процессы отладки и мониторинга. Вы также можете уменьшить поверхность атаки, отключив аутентификацию SSH на основе хоста и вспомогательный бинарник ssh-keysign полностью на системах, где они не нужны, хотя это остановит SSH на месте.

Как выразился один уставший член команды Manjaro Linux: «Не запускайте свой ПК, если он вам не нужен. Запритесь и оглядывайтесь через плечо». Что ж, это определённо один из способов справиться с этим!