
Lecture de fichier arbitraire non authentifiée via chemin absolu
Lecture non authentifiée de fichiers arbitraires via chemin absolu
Bien que la méthode Path.resolve() soit utilisée pour se protéger contre le path traversal, j’ai découvert que l’utilisation d’un chemin absolu permet de lire avec succès des fichiers internes. Le point de terminaison n’est pas non plus authentifié, ce qui signifie que tout le monde peut lire l’intégralité des fichiers de l’organisation, du système de fichiers où que se trouve la racine de stockage dans : files.store.root = /file-store/ tel que configuré dans application-dev.properties. Cela permet un accès non autorisé à des fichiers internes sensibles.
La méthode storageService.loadAsResource() utilise Path.resolve() sans d’abord s’assurer que le nom saisi est un chemin relatif et que le chemin résolu reste dans la racine de stockage de fichiers prévue. En fournissant un chemin absolu comme fileName, on accède directement au fichier arbitraire.
De plus, le point de terminaison /api/v1/files/{fileName} est exposé sans aucune vérification d’authentification ou d’autorisation, permettant à tout utilisateur non authentifié d’accéder aux fichiers.
Utilisation :
python3 CVE-2025-46822.py http://victim.com /etc/passwd
Liens :