
| Champ | Détails |
|---|---|
| ID CVE | CVE-2026-48030 |
| Produit | pheditor |
| Fournisseur | Hamid Samak |
| Versions affectées | 2.0.1, 2.0.2, 2.0.3 |
| Version corrigée | 2.0.4 |
| Gravité | Critique |
| Score CVSS | 9.9 |
| Vecteur CVSS | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-78 (Injection de commandes OS) |
| Découvert par | Muslimbek Burxonov |
Une vulnérabilité critique d'injection de commandes OS existe dans le gestionnaire
d'action terminal de pheditor.php. Le paramètre POST dir est concaténé
directement dans shell_exec() sans assainissement, permettant à un attaquant
authentifié de contourner la liste blanche TERMINAL_COMMANDS et d'exécuter
des commandes OS arbitraires.
pheditor.php, ligne 586 :
$command = $_POST['command']; // ✓ metacharacters checked
$dir = $_POST['dir']; // ✗ NOT checked — vulnerable
// Check applies to $command only, NOT $dir
if (strpos($command, '&') !== false ||
strpos($command, ';') !== false ||
strpos($command, '||') !== false) {
die(...);
}
// $dir injected unsanitized into shell_exec
$output = shell_exec(
(empty($dir) ? null : 'cd ' . $dir . ' && ')
. $command . ' && echo \ ; pwd'
);
python3 poc.py --target http://TARGET/pheditor.php --password admin
Voir poc.py pour le script PoC complet.
pheditor.php, ligne 586 — remplacez :
// BEFORE (vulnerable)
'cd ' . $dir
// AFTER (patched)
'cd ' . escapeshellarg($dir)
Cette preuve de concept est fournie uniquement à des fins éducatives et de recherche. Utilisez-la uniquement sur des systèmes pour lesquels vous avez une autorisation explicite de test.