
CVE-2026-96873에 대한 개념 증명 및 패치 검증 노트로, CirrusSearch 진단 explain 출력에서 발생하는 반사형 XSS와 Python 검증 스크립트를 다룹니다.
보고자: Marco Paciaroni (BomboBombone).
CirrusSearch는 검색 관련 진단 텍스트를 일관되게 이스케이프하지 않고 HTML로 렌더링했습니다. 신뢰할 수 없는 텍스트가 explain 응답에서 실행 가능한 마크업이 될 수 있었습니다.
CVE 레코드는 CirrusSearch 1.46.0까지를 영향을 받는 버전으로 식별합니다.
작동하는 CirrusSearch 백엔드가 필요합니다. 보고된 경로는 계정 없이 접근 가능했으며, 공격을 위해서는 피해자가 공격자가 준비한 요청을 열어야 했습니다. 스크립트 실행은 피해자가 가진 권한으로 위키 오리진에서 발생했습니다.
원본 보고서에는 HTML로 렌더링된 로컬 HTTP 응답과 무해한 마커의 브라우저 실행이 기록되어 있습니다. 대조 요청은 일반적인 진단 출력을 생성했습니다.
업스트림 변경은 MediaWiki HTML 헬퍼를 사용하여 explain 출력을 재구성함으로써 설명, 경로, 제목 및 기타 텍스트가 출력 컨텍스트에 맞게 이스케이프되도록 합니다.
python poc.py https://wiki.example
이 스크립트는 영향을 받는 진단 경로를 통해 무해한 제목 변경 마커를 제출하고, 생성된 URL을 출력하며, 마커가 원시 HTML로 반환되었는지 확인합니다.