Четвертая уязвимость ядра Linux за месяц: угроза кражи ключей SSH
За последние несколько недель в ядре операционной системы Linux обнаружена четвертая серьезная проблема безопасности. Новая уязвимость, получившая название «ssh-keysign-pwn», позволяет обычным пользователям незаметно читать некоторые из наиболее конфиденциальных системных файлов, включая приватные ключи Secure Shell (SSH) и теневой файл паролей. SSH – это протокол, используемый для безопасного удаленного доступа к серверам, а теневой файл паролей содержит хешированные учетные данные пользователей.
Суть проблемы: ssh-keysign-pwn
Уязвимость, получившая идентификатор CVE-2026-46333, была выявлена специалистами по безопасности компании Qualys. Она представляет собой ошибку раскрытия информации в логике проверки доступа ptrace ядра Linux. Ptrace – это системный вызов, используемый для отслеживания и управления процессами. Эксперты Qualys утверждают, что эта проблема существует в той или иной форме уже примерно шесть лет.
«ssh-keysign-pwn» получила свое название из-за одного из основных путей эксплуатации: злоупотребления вспомогательным бинарным файлом OpenSSH — ssh-keysign. Этот инструмент используется для аутентификации на основе хоста и обычно запускается с правами суперпользователя (setuid root), открывая хостовые ключи SSH перед тем, как сбросить привилегии для завершения своей работы. Права setuid root позволяют программе временно получить полные административные привилегии.
Проблема кроется в логике функции __ptrace_may_access(), которая выполняется при завершении процессов. При определенных условиях ядро пропускает стандартные проверки «dumpable» после того, как процесс сбрасывает свое отображение памяти. Это создает краткое «окно» для другого процесса, чтобы похитить его дескрипторы файлов.
Последствия эксплуатации
Хотя «ssh-keysign-pwn» сама по себе не предоставляет полную корневую оболочку, возможность извлекать хостовые ключи и хеши паролей является мощным инструментом для горизонтального перемещения внутри сети и длительного сохранения доступа к скомпрометированным системам.
- Подмена машин: С украденными хостовыми ключами SSH злоумышленники могут выдавать себя за доверенные машины в отношениях хостовой аутентификации.
- Взлом паролей: Получив доступ к теневому каталогу паролей, они могут попытаться выполнить автономный перебор паролей и повторно использовать эти учетные данные в других системах.
Комментарий Линуса Торвальдса и технические детали
Линус Торвальдс в своем патче пояснил, что проблема возникает из-за «странного особого случая: ptrace_may_access() использует флаг ‘dumpable’ для проверки различных других вещей, совершенно независимо от управления памятью (обычно явно используя флаги, такие как PTRACE_MODE_READ_FSCREDS). В том числе для потоков, у которых больше нет виртуальной машины (или, возможно, никогда не было, как у большинства потоков ядра)».
Поясняется, что путем комбинирования этой логической ошибки с системным вызовом pidfd_getfd(2) непривилегированные пользователи могут получить доступ к привилегированным процессам, находящимся в процессе завершения работы, захватить их все еще открытые файловые дескрипторы и затем читать файлы, которые обычно доступны только суперпользователю.
Qualys продемонстрировала, что ошибка может быть надежно воспроизведена на практике, а не только в теории, с помощью рабочего эксплойта (PoC — Proof of Concept, доказательство концепции).
Решение и что предпринять
Хорошая новость заключается в том, что исправление уже выпущено. Грег Кроа-Хартман, один из основных разработчиков стабильного ядра 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: Можно установить параметр sysctl kernel.yama.ptrace_scope=2. Это отключает ptrace для пользователей, не имеющих корневых прав, и блокирует эксплойт. Однако это также нарушает работу многих отладочных и мониторинговых процессов, что не идеально для разработчиков.
- Отключение хостовой аутентификации SSH: Можно полностью отключить хостовую аутентификацию SSH и вспомогательный инструмент ssh-keysign на системах, где они не требуются. Это устраняет основной путь для кражи хостовых ключей, но для многих систем Linux подобное отключение SSH является неприемлемым.
Эксперты в области безопасности ожидают скорейшего выпуска патчей для популярных дистрибутивов, таких как Linux Mint, Ubuntu, AlmaLinux, openSUSE и Rocky Linux.
