
Python 스크립트로 NEW-ENVIRON 주입을 통해 CVE-2026-24061 telnetd 취약점을 탐지하고, 위험 평가 및 완화 지침을 제공합니다.
NEW-ENVIRON 텔넷 옵션을 통한 환경 변수 주입 취약점을 telnetd 서버에서 탐지하는 Python 보안 테스트 도구입니다.
이 스크립트는 NEW-ENVIRON 텔넷 옵션을 통해 환경 변수를 주입할 수 있는 취약점인 CVE-2026-24061에 대해 telnetd 서버를 테스트합니다. 서버가 이러한 환경 변수를 부적절하게 처리하는 경우 명령 주입 또는 인증 우회 공격에 취약할 수 있습니다.
이 스크립트는 단계별 진행 상황과 함께 상세하고 색상으로 구분된 출력, 포괄적인 오류 처리, 테스트 결과·위험 평가·영향 분석을 포함한 최종 요약을 제공합니다.
CVE-2026-24061은 NEW-ENVIRON 텔넷 옵션(RFC 1572)을 통해 전송된 환경 변수를 부적절하게 처리하는 telnetd 서버의 보안 취약점입니다.
이 취약점은 telnetd 서버가 다음과 같은 경우 발생합니다:
NEW-ENVIRON 옵션(RFC 1572)은 텔넷 클라이언트가 서버에 환경 변수를 전송할 수 있게 합니다. 취약한 서버는 이러한 변수를 검증 없이 수락하고 처리할 수 있으며, 이로 인해 공격자가 명령 실행이나 인증 우회로 이어질 수 있는 악성 값을 주입할 수 있습니다.
설치가 필요 없습니다. 이 스크립트는 독립 실행형이며 Python 표준 라이브러리 모듈만 사용합니다.
Linux (Ubuntu/Debian):
sudo apt-get update
sudo apt-get install python3
macOS (Homebrew 사용):
# Homebrew가 설치되어 있지 않은 경우 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Python 3 설치
brew install python3
# 설치 확인
python3 --version
Windows:
python --version
python --version
Linux/macOS:
./telnetd_CVE‑2026‑24061_test.py <host> [port]
Windows (명령 프롬프트):
python telnetd_CVE‑2026‑24061_test.py <host> [port]
Windows (PowerShell):
python telnetd_CVE‑2026‑24061_test.py <host> [port]
Linux/macOS:
# 기본 텔넷 포트 테스트 (23)
./telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# 사용자 지정 포트 테스트
./telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
# 스크립트를 실행 가능하게 만들기 (필요한 경우)
chmod +x telnetd_CVE‑2026‑24061_test.py
# 또는 python3로 직접 실행
python3 telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
Windows (명령 프롬프트):
REM 기본 텔넷 포트 테스트 (23)
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134
REM 사용자 지정 포트 테스트
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
Windows (PowerShell):
# 기본 텔넷 포트 테스트 (23)
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# 사용자 지정 포트 테스트
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
macOS (Homebrew Python):
# Homebrew로 설치된 Python을 사용하는 경우 python3를 명시적으로 사용
python3 telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# 또는 실행 가능하게 만들고 직접 실행
chmod +x telnetd_CVE‑2026‑24061_test.py
./telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
NO_COLOR 환경 변수가 설정된 경우 색상이 자동으로 비활성화됨이 스크립트는 네 가지 가능한 결과를 제공합니다:
[-] NEW-ENVIRON이 수락되지 않음
[RESULT] NOT IMPACTED
의미: 서버가 NEW-ENVIRON 옵션을 지원하거나 수락하지 않습니다. 서버는 이 특정 공격 벡터에 취약하지 않습니다.
요약 정보:
필요한 조치:
[!] ENV가 서버에 의해 수락됨
[RESULT] LIKELY IMPACTED (CVE-2026-24061)
의미: 서버가 NEW-ENVIRON 옵션을 수락하고 주입된 환경 변수를 처리한 것으로 보입니다. 서버는 CVE-2026-24061에 취약할 가능성이 높습니다.
요약 정보:
필요한 조치:
[+] ENV 주입에 대한 응답 없음
[RESULT] INCONCLUSIVE
의미: 서버가 NEW-ENVIRON을 수락했지만 명확한 응답을 제공하지 않았습니다. 수동 검증이 권장됩니다.
요약 정보:
필요한 조치:
[RESULT] TEST FAILED - 통신 오류
의미: 통신 오류로 인해 테스트를 완료할 수 없습니다.
요약 정보:
필요한 조치:
IAC DO NEW_ENVIRON 전송IAC WILL NEW_ENVIRON) 대기USER=-f root 환경 변수 전송-f 플래그는 일반적인 로그인 우회 기법이 스크립트는 표준 텔넷 프로토콜 바이트 값을 사용합니다:
IAC (255): 명령으로 해석DO (253): 옵션 활성화 요청WILL (251): 옵션 활성화 동의SB (250): 하위 협상 시작SE (240): 하위 협상 종료NEW_ENVIRON (39): NEW-ENVIRON 옵션 번호 (RFC 1572)주입 페이로드는 RFC 1572 형식을 따릅니다:
IAC SB NEW_ENVIRON IS VAR USER <0x01>-f root IAC SE
여기서:
IAC SB: 하위 협상 시작NEW_ENVIRON: 옵션 식별자IS: 정보 하위 협상VAR: 변수 유형 표시자USER: 환경 변수 이름0x01: VALUE 바이트-f root: 주입된 값IAC SE: 하위 협상 종료이 스크립트는 다음에 대한 포괄적인 오류 처리를 포함합니다:
모든 오류는 다음을 포함하는 명확하고 색상으로 구분된 사용자 친화적인 메시지로 보고됩니다:
⚠️ 중요: 이 스크립트는 승인된 보안 테스트 전용입니다.
서버가 취약한 것으로 확인된 경우:
즉시 조치:
구성 변경:
장기적 해결 방안:
이 스크립트는 터미널 색상 지원을 자동으로 감지하고 가독성을 위해 ANSI 색상을 사용합니다:
NO_COLOR=1 환경 변수 설정FORCE_COLOR=1 환경 변수 설정예시:
# 색상 비활성화
NO_COLOR=1 ./telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# 색상 강제 적용 (일부 터미널에서 유용)
FORCE_COLOR=1 ./telnetd_CVE‑2026‑24061_test.py 10.0.2.134
이 스크립트는 보안 테스트 목적으로 있는 그대로 제공됩니다. 사용에 따른 책임은 사용자에게 있습니다.
보증 없음
이 소프트웨어는 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않는 명시적 또는 묵시적 보증 없이 "있는 그대로" 제공됩니다. 어떠한 경우에도 저자 또는 저작권 보유자는 계약, 불법 행위 또는 기타 행위에 의한 것인지 여부와 관계없이 이 소프트웨어 또는 이 소프트웨어의 사용 또는 기타 거래로 인해 발생하거나 이와 관련하여 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.
책임 제한
이 소프트웨어의 저자, 기여자 및 배포자는 직접, 간접, 우발적, 특별, 징벌적 또는 결과적 손해(대체 상품 또는 서비스의 조달, 사용 손실, 데이터 또는 이익 손실, 또는 업무 중단을 포함하되 이에 국한되지 않음)에 대해 계약, 엄격한 책임 또는 불법 행위(과실 포함 여부와 무관)에 기반한 책임 이론에 따라 이 소프트웨어 사용으로 인해 발생하는 어떤 방식으로든 책임을 지지 않습니다.
사용자 책임
개선 사항 및 버그 보고를 환영합니다. 수정 사항이 스크립트의 보안 테스트 목적과 윤리적 사용 지침을 유지하는지 확인하십시오.