
CVE-2025-10035_GoAnywhere Obtenir RCE

Description
Un vérificateur Python léger qui détecte si une instance GoAnywhere est vulnérable à CVE‑2025‑10035.
Cet outil envoie une requête GET spécialement conçue avec un User-Agent aléatoire (via fake-useragent avec une liste de repli), ne suit pas les redirections, inspecte l'en-tête Location et classe l'instance comme Non corrigée (vulnérable) ou Corrigée (non vulnérable).
Note : ce dépôt contient actuellement uniquement le vérificateur. Un PoC pourra être ajouté plus tard à un emplacement séparé et clairement identifié, le cas échéant — pour l'instant, ce projet est uniquement dédié à la détection.
CVE‑2025‑10035 (résumé pour ce vérificateur)
Un AdminErrorHandlerServlet de GoAnywhere non corrigé peut générer un jeton de demande de licence valide et le renvoyer intégré dans une URL de redirection. Ce jeton apparaît généralement comme paramètre de requête bundle dans l'en-tête Location (redirigeant souvent vers my.goanywhere.com).
my.goanywhere.com (ou un autre hôte) avec un paramètre de requête bundle. La présence de bundle = vulnérable./license/Unlicensed.xhtml sans bundle, ou ne redirige pas.Rappel éthique : exécutez ce vérificateur uniquement contre des systèmes qui vous appartiennent ou pour lesquels vous êtes explicitement autorisé à effectuer des tests. L'analyse non autorisée peut être illégale et/ou perturbatrice.
User-Agent aléatoire pour chaque requête (fake-useragent + liste de repli).allow_redirects=False) afin que l'en-tête Location puisse être inspecté.multiprocessing.dummy.Pool.colorama.requestsfake-useragentcoloramaurllib3 (généralement installé avec requests)requirements.txt
python -m venv .venv # optional but recommended source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows pip install -r requirements.txt
Voici des exemples pratiques que vous pouvez copier-coller pour exécuter le vérificateur dans différents scénarios : test rapide sur une seule cible, analyse par lots, analyse à faible débit pour la sécurité en production, exécution dans Docker, et un extrait minimal GitHub Actions pour exécuter le vérificateur périodiquement ou à chaque push.
Ces exemples supposent que votre fichier de script s'appelle
check_goanywhere.pyet qu'il est exécutable avecpython check_goanywhere.py. Adaptez les noms de fichiers, les chemins et le nombre de threads à votre environnement.
# Scan targets listed in examples/targets.txt and append vulnerable hosts to results.txt
python check_goanywhere.py examples/targets.txt results.txt
# Use 10 worker threads for faster scanning (be careful with concurrency against production)
python check_goanywhere.py examples/targets.txt results.txt 10
Voici des exemples réalistes de sorties que vous pouvez attendre en exécutant le vérificateur. Tous les exemples supposent que la bannière par défaut s'affiche au démarrage ; les lignes entre [] montrent les messages de statut colorisés que le script imprime dans le terminal. Après l'analyse, les hôtes vulnérables sont ajoutés au fichier de résultats.