Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-2825 — Analyse détaillée et exploit PoC pour CVE-2025-2825, un contournement d'authentification dans CrushFTP. Inclut des templates nuclei, un scanner multi-thread, et un script de création d'utilisateur pour les tests de pénétration. | Kitploit
Outils/GitHubGitHub/iteride/cve-2025-2825
Authentification et AutorisationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionDéveloppement de Charges Utiles
GitHubiteride/cve-2025-2825

CVE-2025-2825

Analyse détaillée et exploit PoC pour CVE-2025-2825, un contournement d'authentification dans CrushFTP. Inclut des templates nuclei, un scanner multi-thread, et un script de création d'utilisateur pour les tests de pénétration.

Voir le dépôt
119il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-2825/CVE-2025-31161

Introduction

Ce document présente l'étude de la vulnérabilité CVE-2025-2825 affectant la partie serveur de CrushFTP, une solution commerciale de transfert et de stockage de fichiers (FTP, SFTP, HTTP/S, interfaces de type S3, etc.).

Le défaut est classé comme contournement d'authentification, permettant à un attaquant distant non authentifié d'obtenir les droits d'administrateur. Une exploitation réussie donne un accès avec les privilèges crushadmin, la visualisation et la modification de fichiers, la gestion des comptes utilisateurs et l'exécution d'opérations administratives via l'interface web et l'API de CrushFTP.

Versions affectées signalées (selon les avis publics et les rapports de chercheurs) :

  • CrushFTP 10.0.0 — 10.8.3
  • CrushFTP 11.0.0 — 11.3.0

⚠️ Remarque : dans certaines publications, on trouve des doublons et des chevauchements d'identifiants CVE (par exemple CVE-2025-31161).


Objectif du rapport

Analyser pas à pas la vulnérabilité et démontrer le cycle complet de l'étude, comprenant :

  1. Collecte et analyse des documents — systématisation des avis, PoC, analyses techniques et publications sur CVE-2025-2825 ; formulation de l'essence du défaut et de son impact.
  2. Détermination des CPE et des conditions — liste des CPE/versions et configurations pertinentes dans lesquelles la vulnérabilité est reproductible (interfaces web, points de terminaison compatibles S3, etc.).
  3. Développement d'un PoC/Exploit — préparation d'un PoC reproductible sur un banc d'essai contrôlé ; description de l'architecture et des mesures de réduction des risques.
  4. Méthodes de vérification massive — trois approches pour rechercher en toute sécurité les hôtes vulnérables :
    • scan actif avec nuclei ;
    • scan passif avec nuclei (basé sur les versions et les indicateurs indirects sans exploitation) ;
    • script personnalisé (Python/Go) pour une vérification contrôlée.
  5. Recommandations et atténuation — conseils pratiques pour la détection, le patch et la protection des instances.
  6. Pratiques de test sécurisées — listes de contrôle pour effectuer des tests uniquement dans des environnements autorisés.

Impact pratique

Selon les rapports publics, la vulnérabilité présente un risque critique :

  • L'exploitation donne un accès administratif à l'instance CrushFTP.
  • Conséquences : vol/modification de fichiers, création/suppression d'utilisateurs, installation de portes dérobées, utilisation du serveur pour d'autres attaques.
  • CVSS est évalué comme critique (environ 9.8).
  • Des PoC et des signes d'exploitation « dans la nature » ont été signalés dans la communauté.

CPE / configurations cibles

Les instances présentant les caractéristiques suivantes sont critiques :

  • Produit : CrushFTP (toute édition avec interface web).
  • Versions : 10.0.0 — 10.8.3, 11.0.0 — 11.3.0.
  • Configurations à risque élevé :
    • Interface d'administration web publique activée (HTTP/S).
    • Points de terminaison API compatibles S3 activés.
    • Absence de mesures de protection supplémentaires (filtrage IP, 2FA).
    • Configurations erronées du proxy/équilibreur rendant les points de terminaison internes accessibles depuis l'extérieur.

Compréhension de la vulnérabilité

CrushFTP implémente le support d'une API de type S3. Pour l'authentification, l'en-tête Authorization est utilisé :

Authorization: AWS4-HMAC-SHA256 Credential=<AccessKey>/<Date>/<Region>/s3/aws4_request, SignedHeaders=<Headers>, Signature=<Signature>

Le serveur extrait l'AccessKey de Credential et doit vérifier la signature. Cependant, une erreur a été commise dans le code lors de la gestion du flag lookup_user_pass .

  • Code vulnérable (fragment simplifié) :
// ServerSessionHTTP.java, méthode loginCheckHeaderAuth()
if (this.headerLookup.containsKey("AUTHORIZATION") &&
    this.headerLookup.getProperty("AUTHORIZATION").trim().startsWith("AWS4-HMAC")) {
    
    boolean lookup_user_pass = true;   // ← erreur critique
    
    if (s3_username3.indexOf("~") >= 0) {
        user_pass = user_name.substring(user_name.indexOf("~") + 1);
        user_name = user_name.substring(0, user_name.indexOf("~"));
        lookup_user_pass = false;
    }
    
    if (this.thisSession.login_user_pass(
            lookup_user_pass,
            false,
            user_name,
            lookup_user_pass ? "" : user_pass)) {
        // Authentification réussie
    }
}
  • Logique ultérieure :

Le flag lookup_user_pass est directement transmis comme anyPass :

if (anyPass && user.getProperty("username").equalsIgnoreCase(the_user)) {
    return user;  // authentification sans vérification du mot de passe
}

Ainsi :

  • Si le nom d'utilisateur est spécifié sans le caractère ~, le flag reste true.

  • La vérification du mot de passe n'est pas effectuée.

  • L'attaquant peut s'authentifier en indiquant uniquement un nom d'utilisateur existant (par exemple crushadmin).

  • Avec un cookie CrushAuth formellement valide et le paramètre c2f, cela permet de contourner l'authentification et d'obtenir un accès administratif.

Correction

Dans la version 11.3.1 et ultérieures, les développeurs :

  • Ont ajouté le paramètre s3_auth_lookup_password_supported (par défaut false), bloquant le scénario vulnérable.

  • Ont introduit des vérifications précoces du nom d'utilisateur avec ~.

  • Ont séparé la logique des flags, supprimant la substitution lookup_user_pass → anyPass.

  • Recommandation : mettre à jour immédiatement CrushFTP vers 11.3.1+ ou appliquer le workaround avec s3_auth_lookup_password_supported désactivé.

POC/Exploit

L'exploitation de CVE-2025-2825 est assez simple et ne nécessite pas de préparation complexe. L'attaquant doit simplement envoyer une requête HTTP spécialement conçue, contenant deux éléments clés :

  • Un en-tête Authorization au format AWS S3 contenant le nom correct d'un utilisateur existant (champ Credential avec AccessKey/nom d'utilisateur).
  • Un cookie CrushAuth au format attendu et le paramètre c2f dans l'URL/le corps de la requête, dont les valeurs correspondent logiquement (le format du cookie doit correspondre à la structure attendue par le serveur).

Si le serveur est vulnérable (version dans la plage 10.0.0—10.8.3 ou 11.0.0—11.3.0 et correctif non appliqué), cette combinaison force le gestionnaire d'authentification à emprunter le chemin vulnérable, où le flag de recherche du mot de passe (lookup_user_pass) est interprété comme « tout mot de passe est accepté », et l'utilisateur est authentifié sur la seule base du nom sans vérification du mot de passe.

Remarque importante :

L'exploitation de cette vulnérabilité nécessite généralement l'envoi de deux requêtes successives. La première, dite de « préchauffage » (warm-up), déclenche le processus d'authentification vulnérable sur le serveur. Un signe caractéristique que le serveur est entré dans l'état souhaité est l'obtention d'une erreur 502 Bad Gateway ou simplement un délai d'attente (timeout). Immédiatement après, la seconde requête, principale, exécute l'action utile (par exemple, création d'un utilisateur) pendant que le serveur est encore dans l'état vulnérable à l'attaque.

GET /WebInterface/function/?command=getUserList&serverGroup=MainUsers&c2f=1111 HTTP/1.1
Host: target-server:8080
Cookie: CrushAuth=1743113839553_vD96EZ70ONL6xAd1DAJhXMZYMn1111
Authorization: AWS4-HMAC-SHA256 Credential=crushadmin/

Pour le test, j'ai utilisé le laboratoire récent sur HTB — Soulmate, qui nécessite justement l'exploitation de CrushFTP.

crush

Progression ultérieure :

Télécharger l’outil