
MediaSearch QuickView의 javascript: 라이선스 URL을 통한 저장형 XSS를 시연하는 정제된 보고서 및 루프백 전용 PoC 스크립트 (CVE-2026-103585).
보고자: Marco Paciaroni (BomboBombone).
MediaSearch QuickView는 CommonsMetadata의 LicenseUrl.value를 링크 대상으로 직접 사용했습니다. CommonsMetadata는 편집 가능한 파일 설명에서 licensetpl_link 값을 복사하면서 URL 스킴을 제한하지 않았습니다. 편집자는 javascript: URL을 저장할 수 있었고, MediaSearch에서 해당 파일을 열고 표시된 라이선스 링크를 따라간 방문자는 위키 오리진에서 스크립트를 실행할 수 있었습니다.
짝을 이루는 CVE-2026-103584는 CommonsMetadata 소스 경로를 다룹니다.
로컬 테스트 위키에서 무해한 마커가 포함된 일회용 파일 설명을 사용하세요:
<span class="licensetpl"><span class="licensetpl_link">javascript:alert("CVE_LICENSE_URL_XSS")</span><span class="licensetpl_short">Test license</span><span class="licensetpl_long">Local test</span></span>
그런 다음 로컬 API를 쿼리하세요:
python poc.py --api http://127.0.0.1:8080/w/api.php --title File:LicenseUrlProbe.png
이 스크립트는 API가 LicenseUrl.value에서 실행 가능한 스킴을 반환하는지 확인합니다. 브라우저 동작을 관찰하려면 로컬 MediaSearch QuickView에서 파일을 열고 라이선스 링크를 따라가세요. 이 스크립트는 루프백 API URL만 허용합니다.