CVE-2025-63307 – laravel-file-manager v3.3.1의 인증된 저장형 크로스 사이트 스크립팅 (XSS) 취약점
🧭 개요
laravel-file-manager v3.3.1 및 이하 버전에서 발견된 인증된 저장형 크로스 사이트 스크립팅 (XSS) 취약점으로, 파일 관리자 인터페이스에 접근 가능한 공격자가 업로드 또는 생성된 파일에 임의의 JavaScript 코드를 주입하고 유지할 수 있습니다.
악성 JavaScript가 포함된 특수하게 조작된 .html 또는 .svg 파일을 업로드하거나, 파일 관리자 내에서 직접 해당 파일을 생성 및 편집함으로써 공격자는 저장형 XSS를 달성할 수 있으며, 이는 다른 인증된 사용자나 관리자가 웹 인터페이스를 통해 해당 파일을 볼 때 실행됩니다.
🧱 영향을 받는 구성 요소
- 프로젝트:
laravel-file-manager
- 구성 요소: 파일 업로드, 생성 및 렌더링 기능 (예: FileManagerController.php)
- 영향을 받는 버전: v3.3.1 이하
🎯 공격 벡터
- 파일 관리자 인터페이스를 통해 파일을 업로드, 생성 또는 이름 변경할 수 있는 권한이 있는 계정으로 인증합니다.
- 악성 JavaScript가 포함된 .svg 또는 .html 확장자를 가진 파일을 업로드하거나 생성합니다.
- 애플리케이션은 파일의 콘텐츠를 검증하거나 포함된 스크립트를 살균(sanitize)하지 않고 저장합니다.
- 다른 사용자(예: 관리자 또는 저장소 유지 관리자)가 브라우저에서 파일을 보거나 미리 볼 때, 악성 JavaScript가 애플리케이션 도메인의 컨텍스트에서 실행됩니다.
- 그런 다음 스크립트는 세션 하이재킹, CSRF 또는 피해자 브라우저에서 민감한 데이터 탈취와 같은 작업을 수행할 수 있습니다.
💥 영향
- 저장형 XSS: 애플리케이션 출처 내에서 지속적인 JavaScript 실행.
- 세션 하이재킹 및 계정 탈취: 공격자는 쿠키를 탈취하거나 피해자로서 작업을 수행할 수 있습니다.
- 피싱 / UI Redressing: 주입된 스크립트가 UI 요소를 변조하거나 사용자를 악성 사이트로 리디렉션할 수 있습니다.
- 민감한 데이터 노출: 피해자 세션이 접근 가능한 애플리케이션 내 정보에 대한 접근.
CVSS v3
기본 점수: 8.1
Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
심각도: 높음
🛡️ 권장 조치
- 업로드된 파일에 대해 엄격한 서버 측 콘텐츠 유형 검증 및 필터링을 구현합니다.
- .html, .svg 또는 활성 콘텐츠를 포함할 수 있는 기타 형식의 업로드를 금지하거나 살균(sanitize)합니다.
- 사용자가 업로드한 파일을 Content-Disposition: attachment 헤더와 함께 제공하거나, 별도의 실행 불가능한 도메인/서브도메인에서 제공합니다.
- 브라우저에서 사용자 제어 콘텐츠를 렌더링하기 전에 출력 인코딩 및 살균을 적용합니다.
🙏 크레딧
발견 및 보고: Chayawat Jeamprasertboon, Thanakorn Boontem, Sahapon Kanajanothai 및 Theethat Thamwasin