
# CVE-2026-31431(Linux 커널) 및 CVE-2026-41940(cPanel)용 멀티 OS 취약점 검사기
| 계열 | 배포판 |
|---|
| Debian | Ubuntu, Debian, Linux Mint, Pop!_OS |
| RHEL | RHEL, CentOS, AlmaLinux, Rocky Linux, Oracle Linux, CloudLinux, Fedora, Amazon Linux |
| SUSE | SLES, openSUSE |
GitHub에서 직접 실행:
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | sudo bash
또는 다운로드 후 실행 (먼저 검토하는 것을 권장):
curl -fsSL -o cve_check_2026.sh https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh
chmod +x cve_check_2026.sh
sudo ./cve_check_2026.sh
algif_aead / af_alg 모듈 로드 상태apt, dnf, yum, zypper를 통한 사용 가능한 패치cpsrvd 서비스 상태| 파일 | 용도 |
|---|---|
/var/log/cve_check_2026_<timestamp>.log | 전체 디버그 로그 |
/var/log/cve_check_2026_<timestamp>.report.txt | 요약 보고서 |
/var/log에 쓸 수 없는 경우 /tmp/로 대체됩니다.
| 코드 | 의미 |
|---|---|
0 | 문제 없음 또는 해당 사항 없음 |
1 | 스크립트 오류 (root 아님, 도구 누락) |
2 | 하나 이상의 CVE가 취약한 것으로 확인됨 |
자동화 및 모니터링 통합에 유용합니다.
| 상태 | 의미 |
|---|---|
SAFE | 패치 적용 확인됨 |
LIKELY_SAFE | 안전할 가능성이 높음; 변경 로그에서 확인되지 않음 |
MITIGATED | 완화 조치 적용됨 (예: 모듈 블랙리스트) |
VULNERABLE | 패치 사용 가능하나 적용되지 않음 |
VULNERABLE_EOL | 지원 종료 버전, 패치 경로 없음 |
NOT_APPLICABLE | 소프트웨어가 설치되지 않음 |
UNKNOWN | 자동으로 확인할 수 없음 |
cPanel 서버의 경우, CVE-2026-41940 악용 징후가 있는 활성 세션 파일을 감사하기 위한 보조 스크립트가 제공됩니다.
/var/cpanel/sessions/raw/의 모든 파일을 스캔하여 각 세션을 세 가지 그룹으로 분류합니다:
| 결과 | 의미 |
|---|---|
LEGITIMATE | handle_form_login, passwd 또는 api_token을 통한 정상 로그인 |
SUSPICIOUS | 공격 페이로드 (badpass) 감지 — 성공적인 접근 없음 |
COMPROMISED | 접근 로그에서 HTTP 200 응답과 함께 공격 페이로드 — root 접근 발생 |
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_session_checker.sh | sudo bash
또는 먼저 다운로드:
curl -fsSL -o cpanel_session_checker.sh https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_session_checker.sh
chmod +x cpanel_session_checker.sh
sudo ./cpanel_session_checker.sh
COMPROMISED 세션이 발견된 경우:
/tmp, cron, ~/.ssh/authorized_keys에서 악성코드 확인손상된 서버는 신뢰할 수 없습니다 — 모든 cPanel 계정을 새로 프로비저닝된 깨끗한 서버로 마이그레이션하세요:
# 손상된 서버에서 — 모든 계정 나열
/usr/local/cpanel/bin/whmapi1 listaccts | grep 'user:'
# 마이그레이션을 위해 각 계정 패키징
/scripts/pkgacct <username> /backup
# 깨끗한 서버에서 — 각 계정 복원
/scripts/restorepkg /backup/cpmove-<username>.tar.gz
또는 WHM >> Transfer Tool >> Copy Multiple Accounts from Another Server를 사용하여 완전한 충실도로 대량 마이그레이션할 수 있습니다.
마이그레이션 후: 도메인이 새 서버 IP를 가리키도록 DNS를 업데이트하고, 모든 사이트가 로드되는지 확인한 다음, 손상된 서버를 폐기하거나 재이미징하세요.
SUSPICIOUS 세션만 발견된 경우 (모두 차단됨):
/scripts/upcp --forcerm -f /var/cpanel/sessions/raw/*공격 후 (차단되었더라도) 예방 조치로 모든 cPanel 계정 비밀번호를 교체하는 것이 권장됩니다. 모든 cPanel 계정 비밀번호를 대량 재설정하고 안전한 CSV 파일에 저장하는 전용 스크립트가 제공됩니다.
whmapi1을 통해 모든 cPanel 계정 가져오기/root/cpanel_new_passwords_<timestamp>.csv에 저장 (모드 600)/root/cpanel_passwd_reset_<timestamp>.log에 기록curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_mass_passwd_reset.sh | sudo bash
새 비밀번호를 계정 소유자에게 안전하게 전달한 후 CSV를 삭제하세요:
shred -u /root/cpanel_new_passwords_*.csv
해당 브랜치의 패치된 빌드로 cPanel을 업데이트하세요:
| 브랜치 | 최소 빌드 |
|---|---|
| 110.x | 11.110.0.97 |
| 118.x | 11.118.0.63 |
| 126.x | 11.126.0.54 |
| 132.x | 11.132.0.29 |
| 134.x | 11.134.0.20 |
| 136.x | 11.136.0.5 |
/scripts/upcp --force
/scripts/restartsrv_cpsrvd
Debian / Ubuntu:
apt update && apt upgrade -y && reboot
RHEL / AlmaLinux / CloudLinux:
dnf update kernel -y && reboot
# 또는
yum update kernel -y && reboot
KernelCare 사용 시 (재부팅 불필요):
kcarectl --update
경고: cPanel 서버에서
apt upgrade -y를 실행하지 마세요 — cPanel이 관리하는 패키지(Apache, PHP, MySQL)를 업그레이드하여 서비스를 손상시킬 수 있습니다.
커널 패키지만 업그레이드하세요:
apt-get install --only-upgrade linux-image-generic linux-headers-generic linux-generic
reboot
재부팅 후 확인:
uname -r
AWS EC2 인스턴스는 다른 커널 패키지(linux-aws)를 사용합니다 — 일반 패키지 이름으로는 실행 중인 커널이 업데이트되지 않습니다:
apt update && apt install --only-upgrade -y \
linux-aws \
linux-image-aws \
linux-headers-aws && \
echo "" && \
echo "현재 실행 중 : $(uname -r)" && \
echo "다음 부팅 예정 : $(ls /boot/vmlinuz-* | sort -V | tail -1 | sed 's|/boot/vmlinuz-||')"
표시된 다음 부팅 커널을 확인한 후 재부팅하세요:
reboot
취약한 모듈이 로드되지 않도록 블랙리스트에 추가하세요:
echo "blacklist algif_aead" >> /etc/modprobe.d/disable-algif-aead.conf
echo "blacklist af_alg" >> /etc/modprobe.d/disable-algif-aead.conf
update-initramfs -u # Debian/Ubuntu
# 또는
dracut --force # RHEL 계열
상태가 MITIGATED로 변경되었는지 확인하기 위해 검사기를 다시 실행하세요. 다음 유지보수 기간에 커널 패치를 적용하세요.
sudo tee /etc/cron.weekly/cve-check-2026 > /dev/null <<'EOF'
#!/bin/bash
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | bash
if [[ $? -eq 2 ]]; then
REPORT=$(ls -t /var/log/cve_check_2026_*.report.txt | head -1)
mail -s "[CVE ALERT] $(hostname) vulnerable" [email protected] < "${REPORT}"
fi
EOF
sudo chmod +x /etc/cron.weekly/cve-check-2026
for host in server1 server2 server3; do
ssh root@${host} "curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | bash" \
> "report_${host}_$(date +%F).txt" &
done
wait
이 스크립트는 읽기 전용입니다 — 시스템을 검사하고 로그 파일을 작성할 뿐입니다. 다음 작업을 수행하지 않습니다:
curl을 bash로 파이프하기 전에 항상 스크립트를 검토하세요. 소스 보기:
https://github.com/sebinxavi/cve-checker-2026/blob/main/cve_check_2026.sh
MIT — LICENSE 참조
Sebin Xavi — sebintech.com