CyberPanel의 명령어 주입 취약점 CVE-2024-51378: 분석 및 악용
CyberPanel 2.3.7 이하 버전에서 명령어 주입 취약점(CVE-2024-51378)이 발견되었습니다. 이 취약점은 /dns/getresetstatus 및 /ftp/getresetstatus 엔드포인트를 통해 공격자가 인증을 우회하고 임의의 명령어를 실행할 수 있게 합니다. 문제의 원인은 dns/views.py와 ftp/views.py 파일에 있습니다. 이를 통해 공격자는 어떠한 권한 검증 없이 서버를 완전히 장악할 수 있습니다.
CyberPanel: 목적과 구조
CyberPanel은 OpenLiteSpeed를 기반으로 한 오픈소스 웹 호스팅 제어판입니다. 도메인, 데이터베이스, FTP, 이메일, DNS 등을 8090 포트의 웹 인터페이스를 통해 관리합니다. 최신 기술 스택과의 원활한 통합으로 호스팅 제공업체와 개발자들 사이에서 인기가 많습니다.
이 취약점은 패널이 설치된 Ubuntu/Debian 서버에 영향을 미칩니다. 공격자는 루트 액세스를 획득해 모든 호스팅 서비스를 위험에 빠뜨릴 수 있습니다.
테스트 환경 설정
취약점을 확인하려면 Ubuntu가 설치된 VPS를 띄우고 취약한 버전의 CyberPanel을 설치하세요:
- 패키지 업데이트:
apt-get update
- wget 설치 및 설치 프로그램 다운로드:
apt install wget
cd /opt
wget -O installer.sh https://cyberpanel.net/install.sh
- 설치 실행:
chmod +x installer.sh
sh installer.sh
재부팅 후 https://<IP>:8090을 열어 설정하세요. 이렇게 하면 취약한 엔드포인트가 포함된 테스트 환경이 생성됩니다.
취약점 기술 분석
RCE는 /dns/getresetstatus와 /ftp/getresetstatus 핸들러의 입력 검증 부족에서 비롯됩니다. 쿼리 매개변수가 제대로 이스케이핑되지 않고 쉘 명령어에 직접 전달되어 주입이 가능합니다.
공개 PoC를 사용한 악용 예시:
git clone https://github.com/refr4g/CVE-2024-51378.git
cd CVE-2024-51378
python3 CVE-2024-51378.py http://target.com:8090 /ftp/getresetstatus
이 스크립트는 서버에서 페이로드를 실행하는 조작된 요청을 보냅니다. 결과는 리버스 쉘 또는 루트 수준 명령어 실행입니다. 테스트 환경에서 플래그 추출이나 지속성을 구현할 수 있습니다.
주요 공격 벡터:
- 자격 증명 없이 인증 우회.
- 사용자 제어 입력으로
os.system()실행. - 패널 컨텍스트로 인한 루트 권한 상승.
영향 지표 및 탐지
이 취약점은 CVSS 9.8(치명적) 점수를 받았으며 2.3.7 패치 이전 모든 설치본에 영향을 미칩니다. 탐지하려면 /home/cyberpanel/logs/의 로그를 확인해 의심스러운 /getresetstatus 요청을 찾거나 8090 포트 트래픽을 모니터링하세요.
확인 단계:
- 버전 확인:
cyberpanel version. - curl로 엔드포인트 테스트:
curl 'http://target:8090/ftp/getresetstatus?param=;id'.uid=0(root)가 반환되면 취약점이 존재합니다. - CVE-2024-51378 템플릿이 포함된 Nuclei 같은 스캐너 사용.
수정 조치
- 패치가 적용된 2.3.7+ 버전으로 업데이트: 패널 또는 CLI 지침 따르기.
- 액세스 제한: 방화벽으로 8090 포트 차단(예:
ufw allow from IP-range) 또는 VPN 사용. - ModSecurity 같은 WAF 배포해 주입 차단.
- 감사:
/usr/local/CyberCP/에서grep -r 'getresetstatus' /usr/local/CyberCP/로 사용자 지정 수정 확인.
정기 업데이트와 최소 권한 원칙으로 위험을 최소화하세요.
주요 요점
- ≤2.3.7 버전의
/dns/getresetstatus및/ftp/getresetstatus를 통해 인증 없이 RCE 가능. - 패치 제공; 프로덕션 환경에서 즉시 업데이트 필수.
- 패치 전에 PoC로 환경 테스트해 오탐지 피하기.
- 8090 포트와 로그에서 명령어 주입 패턴 모니터링.
- 방화벽/VPN으로 외부 패널 액세스 제한.
— Editorial Team
아직 댓글이 없습니다.