CVE-2025-63307 – Cross-site Scripting (XSS) Armazenado Autenticado no laravel-file-manager v3.3.1
🧭 Visão Geral
Uma vulnerabilidade de Cross-site Scripting (XSS) Armazenado autenticado no laravel-file-manager v3.3.1 e versões anteriores permite que atacantes com acesso à interface do gerenciador de arquivos injetem e persistam código JavaScript arbitrário em arquivos enviados ou criados.
Ao enviar um arquivo .html ou .svg especialmente criado contendo JavaScript malicioso, ou ao criar e editar diretamente esse arquivo no gerenciador de arquivos, os atacantes podem obter XSS armazenado que é executado quando qualquer outro usuário autenticado ou administrador visualiza o arquivo pela interface web.
🧱 Componente Afetado
- Projeto:
laravel-file-manager
- Componente: Funcionalidade de upload, criação e renderização de arquivos (ex.: FileManagerController.php)
- Versão afetada: v3.3.1 e versões anteriores
🎯 Vetores de Ataque
- Autentique-se com uma conta que tenha permissão para enviar, criar ou renomear arquivos por meio da interface do gerenciador de arquivos.
- Envie ou crie um arquivo com extensão .svg ou .html contendo JavaScript malicioso
- O aplicativo armazena esse arquivo sem validar seu conteúdo ou sanitizar scripts incorporados.
- Quando outro usuário (como um administrador ou mantenedor de repositório) visualiza ou pré-visualiza o arquivo em seu navegador, o JavaScript malicioso é executado no contexto do domínio do aplicativo.
- O script pode então executar ações como sequestro de sessão, CSRF ou roubo de dados confidenciais do navegador da vítima.
💥 Impacto
- XSS Armazenado: execução persistente de JavaScript na origem do aplicativo.
- Sequestro de Sessão e Assunção de Conta: atacantes podem roubar cookies ou realizar ações como a vítima.
- Phishing / UI Redressing: scripts injetados podem falsificar elementos de interface ou redirecionar usuários para sites maliciosos.
- Exposição de Dados Sensíveis: acesso a informações dentro do aplicativo acessíveis à sessão da vítima.
CVSS v3
Pontuação Base: 8.1
Vetor: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
Severidade: Alta
- Implemente validação e filtragem rigorosas do tipo de conteúdo no servidor para arquivos enviados.
- Não permita ou sanitize uploads com .html, .svg ou outros formatos capazes de conter conteúdo ativo.
- Sirva arquivos enviados por usuários com o cabeçalho Content-Disposition: attachment ou a partir de um domínio/subdomínio separado e não executável.
- Aplique codificação de saída e sanitização antes de renderizar conteúdo controlado pelo usuário no navegador.
🙏 Créditos
Descoberto e relatado por: Chayawat Jeamprasertboon, Thanakorn Boontem, Sahapon Kanajanothai e Theethat Thamwasin