
Preuve de concept d'exploitation pour CVE-2026-21440, un path traversal critique dans les téléversements multipart d'AdonisJS permettant l'écriture arbitraire de fichiers et l'exécution de code à distance.
CVE-2026-21440 est une vulnérabilité critique de traversée de chemin affectant le framework AdonisJS, plus précisément sa gestion des téléversements de fichiers multipart.
⚠️ Si elle est exploitée, les attaquants peuvent écrire des fichiers n'importe où sur le serveur, ce qui peut potentiellement conduire à une exécution de code à distance (RCE).
| Champ | Valeur |
|---|
| ID CVE | CVE-2026-21440 |
| Gravité | 🔴 Critique |
| CVSS v4.0 | 9.2 |
| CWE | CWE-22 (Traversée de chemin) |
| Vecteur d'attaque | Réseau |
| Authentification requise | ❌ Non |
AdonisJS fait indûment confiance aux noms de fichiers fournis par l'utilisateur lors des téléversements de fichiers multipart.
Lorsque les développeurs appellent :
MultipartFile.move()
sans assainissement strict, les attaquants peuvent soumettre des noms de fichiers comme :
../../../../app/config/startup.js
Cela leur permet de s'échapper du répertoire de téléversement prévu et d'écrire des fichiers à des emplacements arbitraires sur le serveur.
Un attaquant peut potentiellement :
Cela rend la vulnérabilité particulièrement dangereuse pour les points de terminaison publics de téléversement de fichiers.
@adonisjs/bodyparser ≤ 10.1.111.x antérieures à 11.0.0-next.6➡️ Mettez à niveau vers une version corrigée dès que possible.
Si la mise à niveau n'est pas encore possible :
../, les chemins absolus, les octets nuls)MultipartFile.move()Installer la dépendance
pip install requests
Enregistrer le script
Copiez le code Python complet et enregistrez-le sous cve_2026_21440_poc.py
Trouver le point de terminaison de téléversement
Identifiez l'URL de téléversement de fichiers multipart de la cible (par ex. /upload, /api/files). Testez avec un navigateur ou curl.
Exécuter d'abord un test sûr
python3 cve_2026_21440_poc.py http://target:port/upload --safe --random
Vérifier le succès
Si vulnérable, essayez le shell (optionnel)
python3 cve_2026_21440_poc.py http://target:port/upload --shell php --depth 5
Vérifier le shell
Accédez au fichier téléversé (par ex. http://target/shell.php?cmd=whoami) pour obtenir la sortie de la commande.
Utilisez uniquement sur des cibles autorisées ! Commencez avec --safe.

╔══════════════════════════════════════════════════════════════╗
║ ⚠️ AVERTISSEMENT ⚠️ ║
╚══════════════════════════════════════════════════════════════╝
Ce script de preuve de concept CVE-2026-21440 est fourni UNIQUEMENT à des fins éducatives, de recherche et de tests de sécurité autorisés.
❌ Vous POUVEZ l'utiliser sur : • Les systèmes que vous possédez • Les systèmes pour lesquels vous disposez d'une autorisation écrite explicite de test
❌ Vous NE POUVEZ PAS l'utiliser pour : • Un accès non autorisé à un système quelconque • Des activités illégales de quelque nature que ce soit • Des fins malveillantes
L'auteur et le distributeur déclinent TOUTE responsabilité pour : • Une mauvaise utilisation de cet outil • Les dommages causés aux systèmes • Les conséquences juridiques d'une utilisation non autorisée
Utiliser ce script contre des systèmes sans autorisation viole les lois de la plupart des pays (par ex. CFAA aux États-Unis, Computer Misuse Act au Royaume-Uni).
En utilisant cet outil, vous acceptez de : • Assumer l'entière responsabilité de vos actions • Vous conformer à toutes les lois applicables
Restez éthique. Testez de manière responsable. Signalez les vulnérabilités aux fournisseurs.
✦ Piratez la planète — mais légalement ✦