Ошибка в Linux девять лет открывала путь к root-доступу

Неприметная ошибка в старом коде

В ядре Linux нашли уязвимость CVE-2026-46333, которая оставалась незамеченной почти девять лет. Её обнаружили специалисты Qualys, а неофициальное название проблемы — ssh-keysign-pwn.

На бумаге оценка не выглядит катастрофической: 5,5 балла по CVSS, средний уровень опасности. Но здесь как раз тот случай, когда сухая цифра немного обманывает. Уязвимость не позволяет атаковать сервер напрямую из интернета, зато может помочь локальному пользователю добраться до чувствительных файлов и в отдельных сценариях развить атаку до root-доступа.

Где была ошибка

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

По данным Qualys, ошибка появилась в ядре ещё в ноябре 2016 года. Суть — в коротком окне во время завершения привилегированного процесса. В этот момент процесс уже находится в особом состоянии, но его файловые дескрипторы ещё могут оставаться открытыми. Именно этим и можно злоупотребить.

Коротко: атака использует не «взлом пароля», а тонкую ошибку в том, как ядро проверяет доступ к завершающемуся процессу.

Что мог получить атакующий

Qualys и поставщики дистрибутивов описывают несколько опасных сценариев. Локальный непривилегированный пользователь мог получить доступ к файлам, которые должны быть закрыты для обычных пользователей: например, к SSH host private keys или к данным из /etc/shadow. Ubuntu отдельно отмечает, что проблема позволяла раскрывать файлы, открытые SUID/SGID-программами во время их завершения.

Это уже не мелочь. SSH-ключи хоста и хэши паролей могут использоваться в дальнейшей атаке: для закрепления, бокового перемещения или подбора доступа к другим системам.

Среди программ, которые фигурировали в разборах, упоминались ssh-keysign, chage, pkexec и другие setuid-компоненты. Но для обычного администратора важнее не список имён, а сам принцип: если система позволяет запускать локальный код недоверенному пользователю, риск становится заметно выше.

Кто в зоне риска

В отчётах упоминаются стандартные установки крупных дистрибутивов, включая Debian, Fedora и Ubuntu. AlmaLinux пишет, что исправление было отправлено в основную ветку ядра, а вскоре после этого появились публичные PoC для чтения SSH-ключей и /etc/shadow.

Особенно внимательно стоит отнестись к серверам, где есть:

— несколько локальных пользователей;
— хостинг или shared-среда;
— CI/CD-раннеры;
— контейнерные окружения;
— SSH-доступ для сторонних подрядчиков;
— любые сервисы, где сначала возможен ограниченный доступ, а затем попытка повысить привилегии.

Уязвимость локальная, но это не делает её безобидной. В реальной атаке локальная эскалация часто идёт вторым шагом после RCE, украденного аккаунта или ошибки в веб-приложении.

Что делать администраторам

Главная рекомендация скучная, но правильная: обновить ядро через пакеты своего дистрибутива и перезагрузить систему, если не используется live-patching. NVD фиксирует исправление в логике ptrace и get_dumpable(), а Ubuntu уже выпустила отдельную страницу по CVE-2026-46333.

Если быстро обновиться нельзя, в качестве временной меры в разных рекомендациях упоминают ужесточение kernel.yama.ptrace_scope. Но это именно временная защита, а не замена патчу.

Отдельно стоит подумать о ротации чувствительных данных. Если на сервере долго работали недоверенные локальные пользователи, безопаснее считать, что SSH host keys и локальные учётные данные могли быть раскрыты, и действовать соответственно: обновить ядро, проверить логи, заменить ключи там, где риск реален.

Финал здесь простой: Linux не стал «ненадёжным» из-за одной ошибки. Но эта история хорошо напоминает, что даже зрелая система может годами хранить маленький баг с очень неприятными последствиями.

Итог

CVE-2026-46333 показывает, что опасность не всегда выглядит как громкая удалённая уязвимость. Иногда достаточно небольшой ошибки в проверке прав, которая живёт в ядре почти десять лет и ждёт момента, когда кто-то соединит её с другим доступом. Особенно важен практический контекст: локальная уязвимость быстро становится серьёзной в хостинге, CI, контейнерах и облачных средах. Это хороший пример того, почему «средний CVSS» не всегда означает «можно отложить».

Меня здесь больше всего смущает не сама оценка 5,5, а срок жизни ошибки. Девять лет для ядра Linux — это очень долго, особенно если речь о механизме доступа к процессам. Да, атака требует локального доступа, но в реальной инфраструктуре он часто появляется после первого взлома. Поэтому относиться к таким багам как к второстепенным опасно. Самый нормальный путь здесь без героизма: обновить ядро, перезагрузить серверы и перевыпустить ключи там, где был риск доступа недоверенных пользователей.

Источник: SecurityLab.ru

00 оценок
ЦитироватьПост-цитата
0Счет: 026Просмотры: 260Комментарии: 00Цитаты: 00Посты-цитаты: 00Оценки: 0

Подписка

Сейчас: Не подписан

Подписка: Не подписан
Войдите, чтобы подписаться на обсуждение.

Участники

0

Видимых участников обсуждения пока нет.

Лучшие комментарии

Лучшие комментарии появятся после первых оценок и ответов.

Активные ветки

Активные ветки появятся, когда у корневых комментариев будут ответы.

Комментарии

0 всего
Написать комментарий

Войдите, чтобы участвовать в обсуждении.

Комментариев пока нет. Можно начать ветку первым.

ymki

Цитаты из этого топика

Последние цитаты, созданные из текста топика и его комментариев.

Этот топик пока не цитировали.