Source : watchTowr Labs. Contexte : les chercheurs décrivent comment ils ont observé et reproduit l’exploitation active de CVE-2025-54309 affectant CrushFTP, listée dans le CISA KEV le 22 juillet 2025, et permettant un accès administrateur via HTTPS lorsque la fonctionnalité proxy DMZ n’est pas utilisée.
• Vulnérabilité et impact. La faille touche « CrushFTP 10 avant 10.8.5 » et « 11 avant 11.3.4_23 » et provient d’une mauvaise gestion de la validation AS2. Exploitée en juillet 2025, elle permet d’obtenir des privilèges administrateur (ex. l’utilisateur intégré crushadmin), entraînant un contrôle total du serveur (création/lecture de fichiers sensibles). Le billet souligne l’ampleur potentielle avec plus de 30 000 instances exposées.
• Observation via honeypots. watchTowr a déployé un capteur CrushFTP dans son réseau de honeypots « Attacker Eye » (avec la capacité STAB de jailbreak in‑memory des appliances) et a capturé deux requêtes HTTP quasi identiques, répétées ~1 000 fois chacune, visant la fonction setUserItem pour créer un compte admin. La différence clé : l’une contient des en-têtes AS2 (AS2-TO: \crushadmin et Content-Type: disposition-notification), l’autre non. Les chercheurs ont constaté qu’une condition de course permettait, lorsque « les étoiles s’alignent », d’exécuter la seconde requête avec le contexte du compte crushadmin.
• Reproduction de l’exploitation. En test local sur une version vulnérable (crushftp11:11.3.0_3) et en envoyant les deux requêtes de manière séquentielle et hautement concurrente, les chercheurs ont reçu une réponse HTTP 200 confirmant l’ajout d’un utilisateur admin (« WATCHTOWRUSER »). Ils précisent que les requêtes isolées ne suffisent pas : c’est leur combinaison dans la course qui déclenche l’élévation de privilèges. ReliaQuest est cité pour avoir signalé la mise en vente de l’exploit.
• Outil de vérification. Un « Detection Artefact Generator » est publié sur GitHub : il ne crée pas d’utilisateur de secours, mais confirme la vulnérabilité en extrayant la liste des utilisateurs.
• IOCs et TTPs
- IOCs observables:
- Chemin: /WebInterface/function/
- En‑têtes: AS2-TO: \crushadmin ; Content-Type: disposition-notification ; X-Requested-With: XMLHttpRequest
- User-Agent: python-requests/2.32.3
- Cookies: CrushAuth=… ; currentAuth=…
- Paramètres: command=setUserItem ; username=WATCHTOWRUSER (valeur utilisée par watchTowr)
- TTPs:
- Contournement d’authentification via mauvaise validation AS2
- Condition de course entre deux requêtes HTTP pour usurper le contexte crushadmin
- Création d’un compte administrateur via setUserItem
- Exploitation active (CISA KEV, juillet 2025) et pression concurrente élevée (multi-threads) pour gagner la course
Type d’article : publication de recherche technique décrivant l’observation, l’analyse et la reproduction d’une exploitation active de vulnérabilité, assortie d’un artefact de détection.
🧠 TTPs et IOCs détectés
TTP
[‘Contournement d’authentification via mauvaise validation AS2’, ‘Condition de course entre deux requêtes HTTP pour usurper le contexte crushadmin’, ‘Création d’un compte administrateur via setUserItem’, ‘Exploitation active et pression concurrente élevée (multi-threads) pour gagner la course’]
IOC
{‘chemin’: ‘/WebInterface/function/’, ’en-têtes’: [‘AS2-TO: \crushadmin’, ‘Content-Type: disposition-notification’, ‘X-Requested-With: XMLHttpRequest’], ‘user-agent’: ‘python-requests/2.32.3’, ‘cookies’: [‘CrushAuth=…’, ‘currentAuth=…’], ‘paramètres’: ‘command=setUserItem ; username=WATCHTOWRUSER’}
🔗 Source originale : https://labs.watchtowr.com/the-one-where-we-just-steal-the-vulnerabilities-crushftp-cve-2025-54309/