
CVE-2026-23499 - Saleor, 무제한 파일 업로드를 통한 저장형 XSS 취약점
| 필드 | 세부 정보 |
|---|---|
| CVE ID | CVE-2026-23499 |
| 심각도 | HIGH |
| 보안 권고 | 보안 권고 보기 |
| 발견자 | Lukasz Rybak |
Saleor는 인증된 스태프 사용자 또는 앱이 임의의 파일(악성 HTML 및 JavaScript를 포함한 SVG 파일 포함)을 업로드할 수 있도록 허용했습니다. 배포 전략에 따라 이러한 파일은 대시보드와 동일한 도메인에서 아무런 제한 없이 제공될 수 있으며, 이로 인해 사용자 브라우저의 컨텍스트에서 악성 스크립트가 실행될 수 있습니다.
악의적인 스태프 구성원은 다른 스태프 구성원을 대상으로 스크립트 주입을 제작하여 액세스 토큰 및/또는 새로 고침 토큰을 탈취할 수 있습니다.
다음에 해당하는 경우 영향을 받습니다:
example.com/dashboard/에 있고 미디어가 example.com/media/ 아래에 있는 경우) - 미디어 파일이 다른 도메인(예: media.example.com)에서 호스팅되는 경우에는 영향을 받지 않습니다.Content-Disposition: attachment 헤더를 반환하지 않는 경우.Saleor Cloud 사용자는 영향을 받지 않습니다.
이 문제는 3.22.27, 3.21.43, 3.20.108 버전에서 패치되었습니다.
중요: 영향을 받는다고 생각되거나 확실하지 않거나 확인하려면 다음 명령을 실행해야 합니다:
$ ./manage.py remove_invalid_files
이 명령은 (파일 시스템, S3 버킷 등과 같은 미디어 저장소의) 업로드된 모든 파일을 검사합니다. 예상치 못한 파일이 있는지 확인해야 하며, 차이가 발견되면 다음 중 하나를 수행하십시오:
./manage.py remove_invalid_files --apply)최신 버전으로 업그레이드할 것을 강력히 권장합니다. 즉시 업그레이드할 수 없는 경우 가능한 해결 방법은 다음과 같습니다:
Content-Disposition: attachment 헤더를 반환하도록 구성합니다. 이렇게 하면 브라우저가 파일을 렌더링하는 대신 다운로드하도록 지시합니다.Content-Security-Policy를 설정합니다(예: Content-Security-Policy: default-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'none';).main 패치: https://github.com/saleor/saleor/commit/b3cb27b3fe96dae3c879063e56d32a9398eabd24이 취약점은 Łukasz Rybak에 의해 보고되었습니다.
이 CVE는 조율된 취약점 공개(coordinated vulnerability disclosure) 관행에 따라 책임감 있게 공개되었습니다. 여기에 제공된 정보는 교육 및 방어 목적으로만 제공됩니다.