Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-79983 — Reproducteur de preuve de concept exécutable pour CVE-2026-79983, une traversée de chemin dans les consommateurs camel-ftp d'Apache Camel, avec des fixtures de serveur FTP malveillant et des builds affectés vs corrigés. | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-79983
Outils DéfensifsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHuboscerd/cve-2026-79983

CVE-2026-79983

Reproducteur de preuve de concept exécutable pour CVE-2026-79983, une traversée de chemin dans les consommateurs camel-ftp d'Apache Camel, avec des fixtures de serveur FTP malveillant et des builds affectés vs corrigés.

Voir le dépôt
12il y a 3 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-79983 — camel-ftp : le consumer construit le chemin distant à partir du listing du serveur sans confinement

Reproducteur de preuve de concept exécutable pour la vulnérabilité Apache Camel où les consumers de fichiers distants interrogent un répertoire sur un serveur distant et construisent le chemin distant absolu de chaque fichier en concaténant le répertoire configuré avec le nom de fichier rapporté dans le listing du répertoire du serveur, sans normalisation lexicale et sans vérifier que le résultat reste à l'intérieur du répertoire interrogé. Ce chemin devient ensuite l'opérande pour la récupération (toujours), et pour la suppression ou le renommage lorsque delete=true, move, preMove, moveFailed ou readLock=rename est configuré.

Un nom de listing n'est pas une donnée contrôlée par la route — il est fourni par le serveur distant, et le canal de contrôle FTP n'a aucune protection d'intégrité, de sorte qu'un attaquant sur le chemin peut réécrire une réponse LIST, et un serveur compromis ou multi-tenant peut émettre un tel nom directement. L'option documentée et activée par défaut jailStartingDirectory n'a pas contraint cet opérande distant.

RuntimeRépertoireStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-ftp 4.22.0 (affecté ; corrigé en 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-ftp 3.29.0 (Camel 4.15.0, affecté)

Le correctif est livré dans Camel 4.18.5 / 4.22.1 / 4.23.0 ; le module Spring Boot exécute à la fois la version affectée (4.22.0) et la version corrigée (4.22.1). Aucune version publiée de Camel Quarkus n'embarque encore un Camel corrigé.

Ce que cela démontre

L'application embarque un serveur FTP délibérément malveillant (Apache MINA FtpServer avec un VFS en mémoire) qui liste, dans le répertoire interrogé /upload :

  • normal.txt — un fichier légitime à l'intérieur du répertoire, et
  • d/../../outside.txt — une entrée forgée dont le nom n'est pas un segment de chemin unique. Il ne commence pas par un point (donc la règle de Camel sur les fichiers cachés ne l'intercepte pas), et /upload + d/../../outside.txt se résout en /outside.txt, un niveau au-dessus du répertoire interrogé.

Un consumer FTP Camel standard interroge /upload. Sur la version affectée, il récupère les deux entrées — y compris /outside.txt, un fichier qu'il ne devrait jamais atteindre. Sur la version corrigée, il conserve normal.txt et ignore l'entrée qui s'échappe, en journalisant Skipping file as it resolves outside the starting directory: upload/d/../../outside.txt.

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Sortie attendue sur le build affecté :

What the Camel consumer retrieved:
    name=[normal.txt]  (inside)
    name=[d/../../outside.txt]  <<< FILE FROM OUTSIDE THE POLLED DIRECTORY
        content: OUTSIDE-SECRET (/outside.txt, a file the consumer should never reach)

Paths the server was asked to read:
    upload/normal.txt  ->  /upload/normal.txt
    upload/d/../../outside.txt  ->  /outside.txt

Résumé de la vulnérabilité

PropriétéValeur
Composantcamel-ftp (schémas ftp, ftps, sftp)
CWECWE-22 (Limitation incorrecte d'un nom de chemin à un répertoire restreint)
GravitéÉLEVÉE
Vecteur d'attaqueUne entrée LIST (fournie par le serveur, réinscriptible sur un canal de contrôle FTP non authentifié) qui n'est pas un segment de chemin unique
ImpactLecture — et, avec delete/move/readLock=rename, suppression ou renommage — de fichiers en dehors du répertoire interrogé, en utilisant les identifiants du point de terminaison
Versions affectéesÀ partir de 4.0.0 avant 4.18.5, à partir de 4.19.0 avant 4.22.1
Versions corrigées4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24487
CréditDilrevx de NSSL, SJTU

Avis : https://camel.apache.org/security/CVE-2026-79983.html

Le correctif

Une surcharge de GenericFileHelper.isWithinDirectory tenant compte des séparateurs et une stratégie GenericFileConsumer.isWithinStartingDirectory (consultée depuis isValidFile lorsque jailStartingDirectory est activé) compactent le chemin résolu et vérifient, sur les frontières de segments de chemin, qu'il se résout toujours à l'intérieur du répertoire interrogé. Un fichier se résolvant à l'extérieur est ignoré avec un avertissement (afin que les autres entrées légitimes du même listing soient tout de même traitées). RemoteFileConsumer et SmbConsumer redéfinissent la vérification ; l'implémentation de base locale est sans effet, car les noms de listing locaux sont toujours des segments uniques.

Atténuation si vous ne pouvez pas mettre à jour

Préférez sftp/ftps à ftp afin que le listing ne puisse pas être réinscrit en transit, et vérifiez la clé d'hôte/le certificat. Restreignez le consommateur avec filter, antInclude ou include pour n'accepter que des noms à segment unique, et évitez delete=true/move/preMove/moveFailed/readLock=rename contre des serveurs dont les listings ne sont pas entièrement fiables. Lorsque c'est possible, limitez le compte serveur au répertoire interrogé.

Avertissement

Ce dépôt est publié à des fins éducatives et défensives : pour aider les utilisateurs d'Apache Camel à comprendre la vulnérabilité, vérifier s'ils sont affectés et confirmer que la mise à jour la résout. Le serveur malveillant et le « secret » sont des fixtures locales inertes. N'utilisez pas ce matériel contre des systèmes que vous ne possédez pas ou n'exploitez pas.

Télécharger l’outil