
Leitura Arbitrária de Arquivos Não Autenticada via Caminho Absoluto
Leitura de Arquivo Arbitrária Não Autenticada via Caminho Absoluto
Embora o método Path.resolve() esteja sendo usado para proteger contra path traversal, descobri que o uso de caminho absoluto consegue ler arquivos internos com sucesso. O endpoint também não é autenticado, o que significa que qualquer pessoa pode ler todos os arquivos da organização, o sistema de arquivos a partir de onde a raiz de armazenamento está configurada em: files.store.root = /file-store/ conforme definido em application-dev.properties, permitindo acesso não autorizado a arquivos internos sensíveis.
o método storageService.loadAsResource() usa Path.resolve() sem primeiro garantir que o nome de entrada seja um caminho relativo e que o caminho resolvido permaneça dentro da raiz de armazenamento de arquivos pretendida; portanto, fornecer um caminho absoluto como fileName levará diretamente ao acesso a esse arquivo arbitrário.
além disso, o endpoint /api/v1/files/{fileName} é exposto sem qualquer verificação de autenticação ou autorização, permitindo que qualquer usuário não autenticado acesse arquivos.
uso:
python3 CVE-2025-46822.py http://victim.com /etc/passwd
Links: