
CVE-2026-41940을 통해 손상된 cPanel/WHM 서버를 위한 원샷 탐지 및 복구 도구로, IOC 검사, 악성코드 정리, C2 차단, 패치 적용을 포함합니다.
CVE-2026-41940 및
nuclear.x86봇넷 캠페인을 통해 손상된 cPanel/WHM 서버를 위한 원샷 탐지 및 복구 도구.
2026년 4월 28일, cPanel은 11.40 이후의 모든 지원되는 cPanel 및 WHM 버전에 영향을 미치는 사전 인증(pre-authentication) 인증 우회 취약점(CVE-2026-41940, CVSS 9.8)을 공개했습니다. 포트 2087에 대한 단일 HTTP 요청만으로 인증되지 않은 공격자가 user=root 세션을 주입하고 WHM에 직접 침투할 수 있습니다.
이 취약점의 악용은 패치가 배포되기 6주 전인 2026년 2월 23일부터 야생에서 관찰되었습니다. 여러 서버에서 정리한 이 캠페인은 nuclear.x86 이라는 Linux 봇넷과 XMRig 기반 암호화폐 채굴기를 함께 설치합니다.
이 저장소에는 다음을 수행하는 단일 Bash 스크립트가 포함되어 있습니다:
/scripts/upcp --force를 통해 cPanel/WHM 패치호스팅 제공업체, 시스템 관리자, cPanel 리셀러가 대규모 서버를 신속하게 분류해야 하는 경우를 위해 설계되었습니다.
다운로드 시 wget 또는 curl이 Killed 메시지를 반환하면 악성코드가 아직 실행 중입니다 — nuclear.x86은 정리를 방지하기 위해 다운로드 도구를 적극적으로 종료합니다. 먼저 종료 단계를 실행하세요(스크립트가 --fix 모드에서 자동으로 수행합니다).
이 때문에 이 스크립트를 다운로드할 수 없다면, 노트북에서 SSH로 복사하여 붙여넣거나 scp를 사용하세요.
# cPanel 서버에서 root로 실행:
cd /root
wget https://raw.githubusercontent.com/shahidmallaofficial/cpanel-cve-2026-41940-fix/main/fix-cpanel-cve-2026-41940.sh
chmod +x fix-cpanel-cve-2026-41940.sh
또는 curl 사용:
cd /root
curl -fsSLO https://raw.githubusercontent.com/shahidmallaofficial/cpanel-cve-2026-41940-fix/main/fix-cpanel-cve-2026-41940.sh
chmod +x fix-cpanel-cve-2026-41940.sh
한 줄 설치 (먼저 스크립트를 검토한 후 실행):
cd /root && \
curl -fsSLO https://raw.githubusercontent.com/shahidmallaofficial/cpanel-cve-2026-41940-fix/main/fix-cpanel-cve-2026-41940.sh && \
chmod +x fix-cpanel-cve-2026-41940.sh && \
less fix-cpanel-cve-2026-41940.sh
# 검토 후 실행:
./fix-cpanel-cve-2026-41940.sh
실행 전 검증하세요. 이 스크립트는 root로 실행되며 시스템 상태를 변경합니다. 먼저 열어서 읽어보세요. 인터넷에서 가져온 임의의 스크립트를
bash로 직접 파이프하지 마세요.
# 1. 스캔 전용 (기본값, 변경 없음 — 항상 안전하게 실행 가능)
./fix-cpanel-cve-2026-41940.sh
# 2. 스캔 + 복구, 각 파괴적 작업에 대해 확인 프롬프트 표시
./fix-cpanel-cve-2026-41940.sh --fix
# 3. 전체 자동: 복구 + cPanel 업데이트 + 캐시 정리 + 기본 보안 강화
./fix-cpanel-cve-2026-41940.sh --auto
# 4. 무인 실행 (프롬프트 없음 — cron, 점프 박스, 대규모 스크립트용)
./fix-cpanel-cve-2026-41940.sh --auto -y
# 5. 도움말
./fix-cpanel-cve-2026-41940.sh --help
| 코드 | 의미 |
|---|---|
0 | 깨끗함 — IOC 미탐지 |
2 | 손상 지표 탐지됨 (보고서 검토 필요) |
1 / 기타 | 사전 점검 실패 (root 아님, cPanel 서버 아님 등) |
/var/log/cpanel-cve-fix/scan-<TIMESTAMP>.log/var/log/cpanel-cve-fix/report-<TIMESTAMP>.txt/root/cve-cleanup-backup-<TIMESTAMP>/| # | 검사 항목 | 탐지 대상 |
|---|---|---|
| 1 | cPanel 빌드 vs 패치된 릴리스 | 취약한 호스트 (6개 패치된 빌드 모두 나열) |
| 2 | 실행 중인 프로세스 | nuclear.x86, xmrig, cpuminer, minerd, xmr-stak, 4thepool_miner |
| 3 | 활성 네트워크 연결 | 알려진 C2 IP 3개 + 채굴 풀 포트 |
| 4 | 셸 히스토리 파일 | bash_history / zsh_history의 IOC 명령 |
| 5 | 방화벽 무결성 | iptables -F 방해 공작 단계 |
| 6 | cPanel 세션 raw 디렉터리 | 위조된 user=root 세션 파일 |
| 7 | /tmp, /var/tmp, /dev/shm | 최근에 배치된 실행 파일 |
| 8 | Cron 항목 | 지속성 (시스템 + 사용자별) |
| 9 | authorized_keys 파일 | 새 SSH 키 — 읽기 전용 감사 |
| 10 | cPanel 액세스 로그 | Go-http-client / python-requests 악용 시그니처 |
| 11 | 중요 바이너리 | 변조된 wget / curl / ls / ps (mtime + RPM 검증) |
/var/cpanel/sessions/raw/* 제거 (먼저 tar.gz 백업 생성)cpsrvd, cpdavd, cphulkd, queueprocd, dnsadmin 재시작/scripts/upcp --force로 cPanel 패치 (--auto에서만)rndc flush), 오래된 저널 로그 정리LF_INTEGRITY 활성화로 보안 강화SSH를 통한 무인 실행 시 해가 될 수 있으므로 수동 조치 보고서에 포함됩니다:
/home/*/public_html의 임의 파일 삭제점프 박스에서 여러 서버를 일괄 처리하려면:
mkdir -p reports
while read -r host; do
echo "=== $host ==="
scp fix-cpanel-cve-2026-41940.sh "root@${host}:/root/" >/dev/null
ssh "root@${host}" '/root/fix-cpanel-cve-2026-41940.sh --auto -y'
scp "root@${host}:/var/log/cpanel-cve-fix/report-*.txt" "reports/${host}.txt" 2>/dev/null
done < servers.txt
그런 다음 보고서를 grep:
grep -l "COMPROMISE INDICATORS PRESENT" reports/*
스크립트는 보고서에 다음 항목을 나열합니다. 이 중 어느 것도 안전하게 자동화할 수 없습니다.
/etc/shadow를 보유함)wp-config.php, .env, config.php 등 업데이트/home/*/public_html 감사 (최근 수정된 .php 파일)다음 빌드 중 하나 이상이어야 합니다:
| 트랙 | 패치된 빌드 |
|---|---|
| 110.0.x | 11.110.0.97 |
| 118.0.x | 11.118.0.63 |
| 126.0.x | 11.126.0.54 |
| 132.0.x | 11.132.0.29 |
| 134.0.x | 11.134.0.20 |
| 136.0.x | 11.136.0.5 |
| WP² | 11.136.1.7 |
자신의 버전은 /usr/local/cpanel/cpanel -V로 확인하세요.
| 유형 | 지표 |
|---|---|
| IP | 87.121.84.78 (nuclear.x86 드롭) |
| IP | 45.148.120.23 (nuclear.x86 대체 드롭) |
| IP | 31.57.109.131 (채굴기 스크립트) |
| 파일 | nuclear.x86 (Mirai 파생 ELF) |
| 프로세스 | nuclear.x86 xd |
| 스크립트 | 4thepool_miner.sh |
| User-Agent | 포트 2087에 접근하는 Go-http-client/1.1 |
| User-Agent | 포트 2087에 접근하는 python-requests/* |
| 패턴 | login_log의 일치하는 성공 로그인 없이 user=root를 포함하는 /var/cpanel/sessions/raw/의 새 파일 |
| 패턴 | 비어 있거나 플러시된 iptables 규칙 세트 |
정상 서버에서 실행해도 안전한가요? 네. 기본 모드는 스캔 전용이며 변경 사항이 없습니다. 수정 및 자동 모드는 멱등적입니다.
다운타임이 발생하나요?
--fix는 cpsrvd를 재시작할 때 WHM/cPanel이 약 10초간 중단됩니다. --auto는 /scripts/upcp --force를 실행하며 10~30분이 소요될 수 있습니다 — 이 기간 동안 웹사이트는 계속 운영되지만 마지막에 WHM이 잠시 사용 불가능해집니다.
내 cPanel 버전이 패치 목록에 없는데 안전한가요? 110.0.x보다 오래된 트랙을 사용 중이라면 수명이 종료된 버전입니다. cPanel은 패치를 제공하지 않습니다. 반대의 증거가 있을 때까지 호스트를 손상된 것으로 간주하고 즉시 업그레이드하세요.
스크립트가 작업을 시도할 때 Killed 메시지가 표시됩니다.
nuclear.x86이 도구를 적극적으로 종료하고 있는 것입니다. 먼저 종료 단계를 수동으로 실행하세요:
pkill -9 -f nuclear.x86
그런 다음 스크립트를 다시 실행하세요.
AlmaLinux / Rocky / CloudLinux / CentOS에서 작동하나요? 네 — 모든 표준 cPanel 플랫폼에서 작동합니다. AlmaLinux 8, Rocky 9, CloudLinux 7+에서 테스트되었습니다.
고객 웹사이트에 영향을 미치나요?
아니요. 스크립트는 /home/*/public_html의 어떤 것도 수정하지 않습니다. OS 수준 구성, cPanel 세션, 방화벽 규칙 및 알려진 악성 프로세스만 다룹니다.
PR 환영합니다 — 특히 다음 항목:
자격 증명을 자동으로 교체하거나 사용자 데이터를 삭제하는 기능은 추가하지 마세요 — 파괴적 표면을 좁게 유지하는 것이 의도적입니다.
MIT. 사용, 포크, 자체 도구에 통합이 가능합니다. 출처 표시는 선택 사항입니다.
WHMCSPilot.com — SM 제작.
취약점 연구 크레딧: cPanel 보안 팀, watchTowr Labs, Rapid7, KnownHost 및 캠페인 전개 과정에서 IOC를 공유한 광범위한 호스팅 커뮤니티.
이 스크립트는 보증 없이 있는 그대로 제공됩니다. 초기 대응 분류 도구이며 — 완전한 침해 대응 절차를 대체하지 않습니다. PII, 결제 데이터 또는 기타 규제 대상 데이터를 처리하는 경우, 손상된 서버를 정리했다고 선언하기 전에 DPO 및 자격을 갖춘 IR 회사에 문의하세요.
서버가 적극적으로 손상된 경우, 가장 안전한 방법은 항상 알려진 정상 백업에서 재구축하는 것이지, 제자리에서 정리하는 것이 아닙니다.