
CVE-2026-55579 – RCE non authentifié dans Pheditor via un mot de passe par défaut codé en dur "admin". Exploit Python complet avec téléchargement de fichier et exécution de terminal. Aucune dépendance.
TL;DR : Pheditor (toutes les versions) embarque un mot de passe administrateur par défaut codé en dur (
admin) dans son code source. Il n'y a aucun changement forcé de mot de passe lors de la première connexion, seulement un avertissement visuel. Tout attaquant non authentifié peut se connecter en tant qu'admin et abuser du terminal intégré (action=terminal) pour exécuter des commandes système arbitraires avec les privilèges du serveur web. Combiné aux capacités de téléversement de fichiers, cela permet une exécution de code à distance (RCE) non authentifiée.
La vulnérabilité provient d'un hash SHA‑512 codé en dur du mot de passe admin dans pheditor.php (ligne 11) :
define('PASSWORD', 'c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec');
Ce hash correspond à :
echo -n 'admin' | sha512sum
Pourquoi c'est un game over :
pheditor.php).admin/admin, un attaquant peut se connecter et obtenir un accès complet à :
action=terminal)action=upload)action=open/action=save)Il n'y a aucune limitation de débit, aucun verrouillage de compte, ni aucun facteur d'authentification supplémentaire.
L'attaque est extrêmement simple et ne nécessite aucune supposition :
POST vers pheditor.php avec pheditor_password=admin. Le serveur définit un cookie de session.token.POST avec :
action=terminaltoken=<jeton extrait>command=<commande OS>dir= (optionnel)<pre> et peut être analysée proprement.Alternativement, l'attaquant peut téléverser un shell web ou écraser des fichiers de l'application.
Clonez le dépôt officiel et démarrez un serveur local :
git clone https://github.com/pheditor/pheditor.git /tmp/pheditor
cd /tmp/pheditor
php -S localhost:8080 pheditor.php &
L'exploit Python fourni repose uniquement sur la bibliothèque standard Python (aucune dépendance externe). Il dispose d'une CLI basée sur argparse, d'une gestion avancée des erreurs, d'un mode verbeux et d'un contrôle du délai d'attente.
python3 exploit.py http://localhost:8080/pheditor.php "id; hostname; whoami"
[*] Connexion avec le mot de passe : admin
[+] Connexion réussie
[*] Extraction du jeton CSRF...
[+] Jeton : a1b2c3d4e5f6...
[*] Exécution : id; hostname; whoami
==================================================
Sortie de la commande :
==================================================
uid=33(www-data) gid=33(www-data) groups=33(www-data)
ubuntu
www-data
==================================================
Une exploitation réussie donne à l'attaquant :
root), l'attaquant prend le contrôle total de l'hôte.Étant donné que Pheditor est souvent utilisé dans des environnements de développement ou en tant que gestionnaire de fichiers léger, les attaquants peuvent facilement le trouver et l'exploiter pour obtenir un premier point d'accès.
pheditor_password=admin).Surveillez votre environnement pour les indicateurs de compromission :
pheditor.php avec pheditor_password=admin ou action=terminal.sh, bash, nc, curl ou wget.Pour une analyse plus approfondie de la chaîne d'exploitation et des charges utiles supplémentaires, référez-vous à ANALYSIS.md.
Avertissement : Ce dépôt contient une preuve de concept (PoC) destinée strictement à des fins défensives, éducatives et de test de sécurité autorisées. N'utilisez pas ce code contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite explicite de test. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.
| Attribut | Détails |
|---|
| Identifiant CVE | CVE-2026-55579 |
| Logiciel affecté | Pheditor (toutes les versions jusqu'à la HEAD actuelle incluse) |
| Version corrigée | Aucune pour l'instant (correctif du vendeur non publié ; une solution de contournement est nécessaire) |
| Classe de vulnérabilité | CWE-798 : Utilisation d'identifiants codés en dur |
| Score CVSS v3.1 | 9,8 (Critique) CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Authentification | Aucune – les identifiants par défaut sont publiquement connus |
| Vérification | Confirmée sur une installation fraîche de Pheditor |