Дата публикации:Fri, 15 May 2026 07:52:00 +0300
В ядре Linux выявлена пятая (1, 2, 3) за последние две недели критическая уязвимость, позволяющая пользователю поднять свои привилегии в системе. Опубликовано два рабочих эксплоита: sshkeysign_pwn даёт возможность непривилегированному пользователю прочитать содержимое закрытых хостовых SSH-ключей /etc/ssh/ssh_host_*_key, а chage_pwn - прочитать содержимое файла /etc/shadow с хэшами паролей пользователей.
Сведения об уязвимости не были запланированы для раскрытия, но один из исследователей безопасности на основе предложенного для ядра патча смог определить суть уязвимости, позволяющей прочитать файлы, доступные только пользователю root, например, /etc/shadow. В добавленном в ядро изменении корректировалась логика использования функции get_dumpable() в ptrace при определении уровня доступа в функции ptrace_may_access().
Непосредственно уязвимость вызвана состоянием гонки, приводящим к возможности непривилегированного доступа к файловому дескриптору pidfd после обращения к файлу из suid root процесса. В момент времени между открытием файла и сбросом привилегий в suid-программе (например, через функцию setreuid), возникает ситуация, когда приложение, запустившее suid root программу, через дескриптор pidfd может обратиться к открытому в suid-программе файлу, даже если это не позволяют права доступа на файл.
Окно для эксплуатации возникает из-за того, что функция "__ptrace_may_access()" пропускает проверку возможности доступа к файлу, если поле task->mm оказывается выставлено в значение NULL после выполнения exit_mm(), но до вызова exit_files(). В данный момент системный вызов pidfd_getfd считает, что идентификатор пользователя (uid) вызывающего процесса, соответствует идентификатору, которому разрешён доступ к файлу. Примечательно, что ранее на проблему обращали внимание ещё в 2020 году, но она осталась неисправленной.
В эксплоите, получающем содержимое /etc/shadow, атака сводится к цикличному запуску через fork+execl приложения /usr/bin/chage с флагом suid root, читающего содержимое /etc/shadow. После того как процесс ответвился выполняется системный вызов pidfd_open и осуществляется цикличный перебор доступных pidfd-дескрипторов через системный вызов pidfd_getfd и их проверка через /proc/self/fd. В эксплоите sshkeysign_pwn похожие манипуляции осуществляются с suid root программой ssh-keysign.
CVE-идентификатор проблеме пока не присвоен, обновление ядра и пакетов в дистрибутивах не опубликованы. В выпущенных несколько часов назад ядрах 7.0.7, 6.18.30 и 6.12.88 уязвимость не устранена. На момент написания новости можно использовать только патч. Обсуждаются возможные обходные пути блокирования уязвимости, такие как выставление sysctl kernel.yama.ptrace_scope или удаление флага suid root с исполняемых файлов в системе (как минимум с утилит ssh-keysign и chage, используемых в эксплоитах).
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=65452