
CVE-2025-70886에 대한 개념 증명(PoC) 익스플로잇으로, Halo CMS(v2.22.4 및 이전 버전)의 지속적 서비스 거부(DoS) 취약점입니다. 원격 공격자가 잘못된 형식의 페이로드를 제출하여 관리자 댓글 인터페이스를 충돌시킬 수 있습니다.
CVE-2025-70886에 대한 개념 증명(PoC) 익스플로잇입니다. Halo CMS(v2.22.4 및 이전)의 지속적 서비스 거부 취약점으로, 원격 공격자가 변조된 페이로드를 제출하여 관리자 댓글 인터페이스를 충돌시킬 수 있습니다.
Halo v2.22.4 및 이전 버전의 문제로 인해 원격 공격자는 공개 댓글 제출 엔드포인트에 조작된 페이로드를 전송하여 서비스 거부를 유발할 수 있습니다.
공격자는 공개 댓글 제출 엔드포인트를 통해 조작/변형된 댓글 페이로드(subjectRef.version과 같은 필드 누락)를 제출할 수 있습니다. 변형된 댓글은 저장되며, 이후 관리자 댓글 페이지에서 이를 읽거나 렌더링할 때 처리되지 않은 예외가 발생하여, 위반 레코드가 제거되거나 서버 측 유효성 검사/처리가 수정될 때까지 댓글 관리 페이지에 지속적 서비스 거부가 발생합니다.
실행이 끝나면 Summary 작업이 각 Halo 버전과 상태를 보여주는 표를 게시합니다.
likely_vulnerable — 검사 중 API가 HTTP 500을 반환함not_confirmed — API가 HTTP 500을 반환하지 않음⚠️ 경고: 승인된 테스트 환경에서만 사용하세요
PoC 저장소를 클론합니다.
git clone https://github.com/HowieHz/CVE-2025-70886
cd CVE-2025-70886
Halo CMS 테스트 인스턴스를 배포합니다.
시스템을 초기화합니다.
PoC 스크립트를 실행합니다(Node.js 환경이 구성되어 있는지 확인).
node src/poc.js --base-url http://localhost:8090 --payload fixtures/payload.sample.json
사용 가능한 옵션:
--base-url: Halo 사이트 기본 URL (예: http://localhost:8090)--payload: 캡처된 유효한 댓글 페이로드 JSON 파일의 경로--dry-run: 수정된 페이로드만 출력, 전송하지 않음--header: 'Key: Value' 형식의 추가 헤더 (반복 가능)--help: 도움말 표시취약점 확인