1. 취약점 개요 (Overview)
- CVE ID : CVE-2025-69771
- 소프트웨어명 : asbplayer (Chrome Extension)
- 저장소 링크 : https://github.com/killergerbah/asbplayer
- 영향 받는 버전 : <= 1.14.0
- 취약점 유형 : Cross-Site Scripting (XSS)
- 관련된 파일 및 함수 : subtitle-reader.ts (_filterText, _decodeHTML functions)
2. 상세 설명 (Description)
asbplayer 크롬 확장프로그램의 자막 로딩 기능에서 크로스 사이트 스크립팅(XSS) 취약점이 발견되었습니다.
이 취약점은 _filterText, _decodeHTML 함수에서 자막 텍스트를 파싱할 때 발생합니다. 사용자가 악의적인 스크립트가 삽입된 자막 파일(.srt)을 업로드할 경우, 자막에 포함된 스크립트가 적절히 필터링되지 않고 렌더링되어 실행됩니다. 이로 인해 공격자는 동일 출처(Same-Origin) 내에서 임의의 요청을 보낼 수 있게 됩니다.
3. 공격 시나리오 및 PoC (Proof of Concept)
악성 자바스크립트 페이로드가 포함된 .srt 파일을 생성하여 asbplayer에 로드하면 스크립트가 실행됩니다. 아래는 취약점을 증명하기 위한 파일입니다.
- Payload_1 (exploit.srt) : <script><button onmouseover="alert('XSS_1')">XSS Button!</button></script>
1
00:00:00,300 --> 00:00:04,500
[asbplayer XSS CASE_1]
<script><button onmouseover="alert('XSS_1')">XSS Button!</button></script>
4. 위험도 및 영향 (Impact)
asbplayer는 주로 스트리밍 서비스 위에서 동작하는 확장프로그램입니다. 이 취약점을 통해 악성 자막이 로드되면, 스크립트가 해당 스트리밍 사이트의 컨텍스트(Origin)에서 실행됩니다.
따라서 공격자는 피해자의 활성화된 세션을 탈취하거나, 백그라운드에서 임의의 API 요청을 보내어 민감한 계정 정보를 유출시킬 수 있는 심각한 보안 위협을 초래합니다.
5. 해결 방안 (Remediation)
확장프로그램 내에서 HTML 태그가 DOM에 삽입되기 전에 엄격하게 이스케이프(Escape) 처리하거나, DOMPurify와 같은 검증된 라이브러리를 사용하여 악성 입력값을 필터링(Sanitization)해야 합니다.