CVE-2025-65346 – Path Traversal Autenticado a Partir da Função UnZip Levando à Escrita Arbitrária de Arquivos no laravel-file-manager v3.3.1
🧭 Visão Geral
Uma vulnerabilidade de Path Traversal na funcionalidade de descompactação/extração (unzip/extract) da aplicação afetada permite que um atacante escreva arquivos em locais arbitrários do sistema de arquivos durante a extração de arquivos compactados. Como a rotina de extração falha em sanitizar os caminhos de destino dentro das entradas ZIP, um atacante pode criar arquivos ZIP contendo sequências de traversal (por exemplo, ../../routes) ou caminhos absolutos. Quando processados pela aplicação, esses arquivos são extraídos diretamente para os locais especificados com as permissões do processo em execução.
Essa falha pode ser abusada para sobrescrever arquivos existentes, plantar payloads executáveis ou modificar o comportamento da aplicação, potencialmente levando à execução remota de código.
🧱 Componente Afetado
- Projeto:
laravel-file-manager
- Componente: zip/archiving Functionf
- Versão afetada: v3.3.1 e anteriores
🎯 Vetores de Ataque
- O atacante envia ou fornece um arquivo ZIP ao endpoint de descompactação da aplicação (a autenticação pode ou não ser exigida dependendo da configuração).
- Manipula o payload da requisição UNZIP para incluir sequências de directory traversal como ../../routes.
- A lógica de extração do backend resolve esses caminhos sem validação e escreve os arquivos diretamente nesses locais.
- Arquivos existentes podem ser sobrescritos silenciosamente se houver colisão de nomes.
- O atacante ganha a capacidade de substituir arquivos da aplicação, escrever web shells ou modificar arquivos críticos de configuração.
💥 Impacto
- Escrita Arbitrária de Arquivos: Arquivos podem ser escritos em qualquer lugar que seja gravável pelo usuário da aplicação (ex.: www-data).
- Sobrescrita de Arquivos: Atacantes podem sobrescrever arquivos legítimos da aplicação, incluindo rotas, controladores ou configurações.
- Execução Remota de Código: Ao escrever payloads executáveis na web (PHP, JSP, etc.) dentro da raiz web, o atacante pode alcançar execução total de código.
- Comprometimento da Aplicação: A modificação de pontos de entrada, como index.php, pode alterar a lógica do site ou introduzir backdoors persistentes.
- Escalação de Privilégios (Indireta): Sobrescrever arquivos de configuração/env pode expor segredos que possibilitam movimentação lateral adicional.
Severidade: Crítica
Pontuação Base: 9.1
Vetor: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
🛡️ Remediação Recomendada
- Implementar validação de caminhos canônicos: Normalizar os caminhos de arquivos solicitados e impor uma restrição rigorosa à raiz de armazenamento designada do projeto.
- Rejeitar qualquer caminho que contenha sequências de traversal (../, %2e%2e/, traversal aninhada).
- Aplicar lógica de lista de permissões (allowlist) no lado do servidor.
- Atualizar para uma versão corrigida assim que o fornecedor lançar uma correção que resolva essa fraqueza de path traversal.
🙏 Créditos
Descoberto e reportado por: Theethat Thamwasin