Selon une publication technique de ProjectBlack, des chercheurs ont mis au jour une vulnérabilité critique de type Local File Inclusion (LFI) non authentifiée affectant la plateforme de suivi GPS Traccar sur Windows, permettant la lecture de fichiers arbitraires et l’exposition d’identifiants sensibles.

La faille provient du composant DefaultOverrideServlet de Traccar, où la méthode getResource() passe le paramètre contrôlé par l’utilisateur à Jetty Resource.addPath() sans validation suffisante des séquences d’échappement spécifiques à Windows. Bien que Jetty URIUtil.canonicalPath() bloque les traversées de chemin avec des slashs, il ne neutralise pas correctement les backslashes sous Windows, ouvrant la voie à une LFI non authentifiée.

L’impact est majeur : un attaquant distant peut lire des fichiers arbitraires hors du répertoire prévu, notamment des fichiers de configuration contenant des mots de passe de base de données, des identifiants LDAP/Active Directory et d’autres secrets. L’exploitation s’appuie sur le mécanisme overrideResource prévu pour charger des assets depuis ./override, détourné via des séquences de traversée comme « /……\conf/traccar.xml » pour échapper au répertoire de base.

Côté périmètre, les versions 6.1 à 6.8.1 de Traccar sont vulnérables sur des installations Windows par défaut, tandis que les versions 5.8 à 6.0 le deviennent en présence d’une configuration d’override non par défaut. Une analyse Shodan a identifié plus de 7 000 instances potentiellement vulnérables dans le monde, dont beaucoup exécutent des versions affectées sur Windows et exposent des identifiants Active Directory. La découverte initiale est survenue lors d’un test d’intrusion, à la suite d’une alerte Nessus.

L’équipe Jetty a confirmé qu’il s’agit d’une vulnérabilité au niveau applicatif, liée au contournement de ResourceService et ContextHandler (y compris AliasChecker) par l’implémentation de Traccar. Des schémas similaires ont été observés dans d’autres projets utilisant Jetty Resource.addPath(), comme mediatoad. Type d’article : rapport de vulnérabilité visant à documenter et divulguer la faille et ses conditions d’exploitation.

TTPs observés:

  • Exploitation de LFI non authentifiée via traversée de répertoires avec backslashes sous Windows (ex: “/……\conf\traccar.xml”).
  • Lecture de fichiers de configuration sensibles (mots de passe DB, identifiants LDAP/AD).
  • Vecteur: DefaultOverrideServlet.getResource() appelant Jetty Resource.addPath() sans contrôles adéquats, contournant ContextHandler/AliasChecker.
  • Détection et exposition: Nessus (détection), Shodan (cartographie de plus de 7 000 instances exposées).

🔗 Source originale : https://projectblack.io/blog/jetty-addpath-lfi/

🖴 Archive : https://web.archive.org/web/20251002072107/https://projectblack.io/blog/jetty-addpath-lfi/