Опубликован эксплойт для Linux, который читает /etc/shadow без root

Обычный пользователь получает приватные SSH-ключи хоста и хеши паролей.


mnqhglncao8lixkxnjqgl85bb4mmb6kd.jpg

В ядре Linux нашли уязвимость CVE-2026-46333, которая звучит особенно неприятно для администраторов: обычный локальный пользователь на уязвимой машине может прочитать файлы, доступные только root, включая приватные SSH-ключи хоста и /etc/shadow с хешами паролей. Проблема получила название ssh-keysign-pwn, а публичный демонстрационный эксплойт уже появился в открытом доступе.

Уязвимость затрагивает не сам OpenSSH и не конкретную настройку SSH-сервера, а механизм проверок доступа в ядре Linux. Ошибка находится в логике ptrace, которую ядро использует, когда один процесс пытается получить доступ к другому процессу. В нормальной ситуации такие проверки должны отсечь попытку обычного пользователя заглянуть туда, куда доступ имеет только привилегированный процесс. В CVE-2026-46333 проверка ломается в короткий момент завершения процесса.

Проблема возникает из-за порядка, в котором Linux закрывает ресурсы процесса. Во время завершения процесса ядро уже освобождает память процесса, но файловые дескрипторы еще остаются открытыми. В такой промежуток __ptrace_may_access() пропускает часть проверки, потому что у задачи уже нет контекста памяти mm, а дескрипторы к чувствительным файлам все еще существуют. Атакующий может попытаться поймать момент и через pidfd_getfd() украсть открытый дескриптор.

На практике сценарий выглядит приземленно и поэтому опасно. Атакующий с непривилегированной локальной учетной записью многократно запускает процесс и пытается попасть в гонку при завершении привилегированного помощника. Демонстрационный код ssh-keysign-pwn показывает два варианта атаки: через ssh-keysign можно прочитать приватные ключи из /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key, а через chage -l можно добраться до /etc/shadow. Debian уже добавил в карточку CVE ссылки на исправление в ядре и публичный PoC.

Главный риск связан не с немедленным получением root-доступа, а с кражей секретов, которые часто живут дольше самой уязвимой машины. Приватный SSH-ключ хоста помогает атакующему подменять сервер или проводить атаки посредника до ротации ключей. Хеши из /etc/shadow можно вынести на отдельную машину и подбирать пароли без шума в инфраструктуре. Если одна учетная запись или один SSH-ключ повторяются в нескольких средах, локальная уязвимость быстро превращается в проблему всей сети.

Исправление вошло в ядро 14 мая 2026 года через коммит 31e62c2ebbfd. До установки патча уязвимыми считались ядра до этой правки, а поставщики дистрибутивов начали выпускать обновления в своих ветках. Red Hat описывает CVE-2026-46333 как ошибку, позволяющую непривилегированному локальному пользователю читать закрытые для него файлы, а Debian указывает на upstream-коммит и п убличный репозиторий с PoC.

Администраторам стоит обновить ядро через штатные каналы дистрибутива и перезагрузить системы, если live-patching не применяется. После патча имеет смысл проверить доступ к /etc/shadow, пересмотреть локальные учетные записи и ротировать SSH-ключи на критичных серверах, особенно если на машине могли работать непривилегированные пользователи. Ограничение локального доступа снижает риск, но не заменяет обновление ядра, потому что атака требует только уже полученного низкопривилегированного присутствия на системе.