Уязвимость в telnetd, позволяющая подключиться с правами root без аутентификации

В сервере telnetd из набора GNU InetUtils выявлена уязвимость, позволяющая подключиться под любым пользователем, включая пользователя root, без проверки пароля. CVE-идентификатор пока не присвоен. Уязвимость проявляется начиная с версии InetUtils 1.9.3 (2015 год) и остаётся неисправленной в актуальном выпуске 2.7.0. Исправление доступно в форме патчей (1, 2).

Проблема вызвана тем, что для проверки пароля процесс telnetd вызывает утилиту «/usr/bin/login», передавая в качестве аргумента имя пользователя, указанного клиентом при подключении к серверу. Утилита «login» поддерживает опцию «-f», позволяющую осуществить вход без выполнения аутентификации (подразумевается, что эта опция используется, когда пользователь уже прошёл проверку). Таким образом, если добиться подстановки опции «-f» в имени пользователя, можно подключиться без проверки пароля.

При обычном подключении использовать имя пользователя вида «-f root» не получится, но в telnet имеется режим автоматического подключения, активируемый опцией «-a». В данном режиме имя пользователя берётся не из командной строки, а передаётся через переменную окружения USER. При вызове утилиты login значение данной переменной окружения подставлялось без дополнительной проверки и без экранирования спецсимволов. Таким образом, для подключения под пользователем root достаточно выставить в переменную окружения USER значение «-f root» и подключиться к telnet-серверу, указав опцию «-a»:


   $ USER='-f root' telnet -a имя_сервера  

Приведшее к уязвимости изменение было добавлено в код telnetd в марте 2015 года и было связано с устранением проблемы, не позволявшей определить имя пользователя в режиме autologin без аутентификации в Kerberos. В качестве решения была добавлена поддержка передачи имени пользователя для режима autologin через переменную окружения, но проверку корректности имени пользователя из переменной окружения добавить забыли.

Источник: http://www.opennet.ru/opennews/art.shtml?num=64649