В ядрото на Linux е отстранена уязвимост, неофициално наречена ssh-keysign-pwn. Проблемата позволява на локален непривилегирован потребител да чете файлове, които трябва да са достъпни само за root, включително частни SSH host-ключове и, в някои сценарии, /etc/shadow. Към момента на публикуването на проблема все още не е присвоен отделен CVE.
Въпреки името, става дума не за грешка в OpenSSH като мрежов сървър sshd, а за дефект в логиката на ядрото на Linux, свързана с проверките ptrace и достъпа до файлови дескриптори на друг процес чрез pidfd_getfd(2). Утилитата OpenSSH ssh-keysign се оказа един от удобните примери за експлоатация, защото работи с частни host-ключове, които обикновено принадлежат на root и не са достъпни за обикновените потребители.
Същността на грешката е, че функцията __ptrace_may_access() неправилно обработва състоянието на процеса, чието адресно пространство mm вече е изчезнало, но все пак остават отворени файлови дескриптори. При завършване на процеса ядрото извиква exit_mm() по-рано, отколкото затвори файловете чрез exit_files(). В този кратък интервал процесът вече изглежда като такъв, който няма обичайно потребителско адресно пространство, но отворените му файлове все още съществуват. Поради това проверката за „dumpable“ състояние може да бъде заобиколена, а pidfd_getfd() — да получи достъп до чужд файлов дескриптор при съвпадащ UID.
Практическият сценарий се изгражда около setuid-програми, които първо отварят чувствителен файл с права на root, след което сбросват привилегиите и завършват, все още имайки отворен дескриптор. В публикуваното описание като пример е даден ssh-keysign: той отваря /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key, след което сбросва правата и може да завърши, ако EnableSSHKeysign е изключен. Тези ключове трябва да бъдат достъпни само за root, тъй като се използват за аутентификация на базата на хост.
Вторият пример е chage, който може да отвори /etc/shadow, след това да сброси ефективните права и да завърши. В резултат на това атаката не непременно дава shell с права на root веднага, но позволява достъп до съдържанието на файловете, което обикновено се счита за критично закрито. Изтичането на /etc/shadow е опасно заради възможността за последващо офлайн подбиране на пароли, а изтичането на частни SSH host-ключове — риск за подмяна на хоста или извършване на атаки на доверени SSH сценарии.
Поправката вече е приета в основната клонка на Linux. Комит 31e62c2ebbfd с заглавие ptrace: по-подходяща логика за ‘get_dumpable()’ променя поведението при проверка на dumpability: ядрото вече запазва състоянието user_dumpable при изчезването на mm и изисква правилна проверка на CAP_SYS_PTRACE за заобикаляне. Патчът засяга include/linux/sched.h, kernel/exit.c и kernel/ptrace.c.
Уязвимостта беше докладвана от Qualys и поправена от Линус Торвалдс на 14 май 2026 година. Phoronix отбелязва, че към момента на публикуването проблемът засяга всички версии на ядрото на Linux до актуалното състояние на основната клонка преди внасянето на поправката. Авторът на PoC също посочва, че уязвими са ядрото до комит 31e62c2ebbfd, включително стабилни клонове към 14 май.
Отделно е важно, че за експлоатацията не е необходимо да се зареждат специфични модули на ядрото, както в редица скорошни LPE-уязвимости. Достатъчен е локален непривилегиран достъп до системата и наличието на подходящ привилегиран помощен процес. Разработчикът на Debian Даниел Бауманн отбеляза, че този проблем трябва да се отстрани с обновление на ядрото и последващо рестартиране в поправеното ядро.
В публикувания репозиторий за демонстрация е посочена проверка на Raspberry Pi OS Bookworm с ядро 6.12.75, Debian 13, Ubuntu 22.04, Ubuntu 24.04, Ubuntu 26.04, Arch и CentOS 9. Този списък трябва да се разглежда като данни на автора на PoC, а не като изчерпателен списък: тъй като грешката е в общата логика на ядрото, фактическият обхват зависи от версията на ядрото и наличието на backport-поправка в конкретния дистрибутив.
За администраторите основният съвет е прост: да инсталират обновения пакет на ядрото от своя дистрибутив и да рестартират системата. Ако има основания да се счита, че на машината вече е имало локален непривилегиран достъп от страна на злоумесник, след обновлението е добре да се обмисли ротацията на SSH host-ключовете и проверка на /etc/shadow/учетните записи, тъй като самата уязвимост е свързана именно с четенето на чувствителни файлове, а не само с абстрактно заобикаляне на проверките за достъп.
В Debian вече е започната работа по пренасяне на поправката: Бауманн съобщи за cherry-pick на upstream-комита в trixie-fastforward-backports и за изпращане на merge request за Debian sid. В merge request-а ясно е посочено, че се пренася комит 31e62c2 за поправка на ptrace-логиката за dumpability, позволяваща четене на root-файлове от непривилегирован потребител.
Източник: linux.org.ru
