
Образовательный Docker-лабораторный стенд, демонстрирующий CVE-2026-24061 — обход аутентификации в GNU telnetd, позволяющий получить root-доступ через внедрение аргументов в переменную окружения USER.
Этот репозиторий содержит простую лабораторию на Docker для демонстрации уязвимости CVE-2026-24061. Она позволяет обойти аутентификацию и получить доступ как root в GNU telnetd в Linux.
Цель исключительно образовательная.
docker build -t cve-2026-24061 .
docker run -it -p 2323:23 cve-2026-24061
В другом терминале выполните:
USER="-f root" telnet -a localhost 2323
После этого доступ будет предоставлен напрямую как root, без запроса пароля.
Ошибка возникает из-за инъекции аргументов при вызове утилиты /usr/bin/login. Telnetd динамически формирует командную строку для вызова login и включает значение переменной окружения USER через плейсхолдер %U без какой-либо санитизации.
Поскольку утилита login принимает опцию -f, которая игнорирует аутентификацию по паролю, атакующий может задать USER="-f root" и принудительно выполнить вход напрямую как root.
Так как telnetd запускается с повышенными привилегиями, эта манипуляция немедленно приводит к root-оболочке без необходимости в действительных учётных данных. Эксплуатация проста, не требует предварительного взаимодействия и может быть легко автоматизирована, что оправдывает оценку CVSS 9.8.
Уязвимость была исправлена путём введения проверки и санитизации переменной USER, блокирующей значения, начинающиеся с дефиса, и специальные символы, что предотвращает инъекцию аргументов в login.