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-95628 — Reproducteur de preuve de concept exécutable pour CVE-2026-95628, une lacune de validation de chemin absolu dans Apache Camel camel-docling, avec des harnais Spring Boot et Quarkus et une vérification du correctif. | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-95628
Outils DéfensifsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebApprentissage et Éducation
GitHuboscerd/cve-2026-95628

CVE-2026-95628

Reproducteur de preuve de concept exécutable pour CVE-2026-95628, une lacune de validation de chemin absolu dans Apache Camel camel-docling, avec des harnais Spring Boot et Quarkus et une vérification du correctif.

Voir le dépôt
6il y a 6 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-95628 — camel-docling : validatePathSafety n'a pas rejeté les chemins absolus (correctif incomplet de CVE-2026-40047)

Reproducteur de preuve de concept exécutable pour la vulnérabilité Apache Camel où la vérification de chemin des arguments personnalisés introduite par le correctif de CVE-2026-40047 ne recherchait que la traversée relative. Elle rejetait une valeur contenant ../ et une valeur dont la forme normalisée contenait encore un élément .. — mais elle ne vérifiait jamais si une valeur était un chemin absolu, et un chemin absolu sans segments de traversée ne contient ni l'un ni l'autre.

RuntimeRépertoireStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-docling 4.22.1
Camel Quarkuscamel-quarkus/Camel Quarkus 3.39.0 (Quarkus 3.39.0, Camel 4.22.0)

Exécution

cd camel-spring-boot          # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
until [ "$(curl -s http://localhost:8080/exploit/ready)" = "Started" ]; do sleep 1; done
curl -s http://localhost:8080/exploit/attack
docker compose down

Sortie sur une build affectée (identique sur les deux runtimes) :

1) A relative traversal value, which the CVE-2026-40047 fix does reject
     header CamelDoclingCustomArguments = [--artifacts-path, ../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

2) Traversal hidden behind redundant separators - also rejected (normalized first)
     header CamelDoclingCustomArguments = [--artifacts-path, models/./../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

3) An ABSOLUTE path, which contains no traversal sequence at all
     header CamelDoclingCustomArguments = [--artifacts-path, /etc]
     argv docling received: --artifacts-path /etc --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

4) The same, attached to the flag after an equals sign
     header CamelDoclingCustomArguments = [--artifacts-path=/root/.ssh]
     argv docling received: --artifacts-path=/root/.ssh --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

>>> PROVEN: ...

Les sondes 1 et 2 montrent que le correctif de CVE-2026-40047 fait son travail. Les sondes 3 et 4 révèlent la faille : le flag figure sur la liste d'autorisation de ce correctif (--artifacts-path indique à docling où trouver ses artefacts de modèle), et la valeur passe dans les deux formes d'argument — un élément de liste séparé suivant le flag, et attaché après un =. Une partie capable de choisir les arguments personnalisés pourrait donc pointer le processus docling vers n'importe quel répertoire accessible au processus Camel, en dehors du répertoire de travail dans lequel la vérification était censée confiner les valeurs de chemin, ce qui est exactement le résultat que le correctif précédent visait à empêcher.

Comment c'est câblé

Aucune installation de docling n'est nécessaire. La faille se situe dans la ligne de commande construite par Camel, donc l'option doclingCommand de l'endpoint pointe vers un substitut enregistreur du CLI qui écrit le vecteur d'arguments qui lui a été transmis dans un fichier. Le vrai DoclingProducer, le vrai validateCustomArguments() et le vrai validatePathSafety() s'exécutent ; seul l'outil externe est remplacé.

Seul le mode CLI, qui est le mode par défaut, transmet des arguments personnalisés à docling.

Accessibilité

CamelDoclingCustomArguments appartient à l'espace de noms des en-têtes Camel, que les consommateurs appliquant le filtrage d'en-têtes par défaut de Camel — les consommateurs JMS et Kafka, par exemple — retirent des messages entrants. Le problème est donc atteint lorsqu'une route transmet des valeurs influencées de l'extérieur dans l'en-tête, ou lorsqu'un consommateur mappe les en-têtes entrants sans ce filtrage.

Résumé de la vulnérabilité

PropriétéValeur
Composantcamel-docling (DoclingProducer.validatePathSafety())
CWECWE-22 (Limitation incorrecte d'un nom de chemin à un répertoire restreint)
GravitéMoyenne
Vecteur d'attaqueUn chemin absolu comme valeur d'un flag de type chemin figurant sur la liste d'autorisation dans CamelDoclingCustomArguments
ImpactPointer le processus docling vers n'importe quel répertoire accessible au processus Camel
Versions affectéesÀ partir de 4.15.0 avant 4.18.5, à partir de 4.19.0 avant 4.22.2
Versions corrigées4.18.5, 4.22.2, 4.23.0
JIRACAMEL-24893
CréditZhixi « Jace » Sun, chercheur indépendant en sécurité

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

Connexe : il s'agit d'un correctif incomplet de CVE-2026-40047, et l'en-tête de chemin de sortie du même composant est CVE-2026-95629.

Le correctif

validatePathSafety rejette désormais aussi une valeur d'argument personnalisé de type chemin qui est un chemin absolu, faisant échouer l'échange avec une IllegalArgumentException indiquant que l'argument ne doit pas être un chemin absolu. Comme la vérification se trouve dans l'assistant partagé qui valide chaque valeur de type chemin, les deux formes d'argument sont couvertes.

Corrigé sur main dans apache/camel#26738 (fd3bc8e7), rétroporté vers camel-4.22.x dans #26743 (e9233c37) et vers camel-4.18.x dans #26744 (59d30af1).

Vérification d'une version corrigée

Définissez camel.version sur 4.22.2 et exécutez-le à nouveau. Vérifié de 4.22.1 → 4.22.2 :

3) An ABSOLUTE path, which contains no traversal sequence at all
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 must not be an absolute path

4) The same, attached to the flag after an equals sign
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 0 must not be an absolute path

>>> NOT reproduced: the absolute path was rejected too.

Atténuation sans mise à niveau

Ne construisez pas CamelDoclingCustomArguments à partir de valeurs provenant de l'extérieur du déploiement ; supprimez cet en-tête des messages arrivant de l'extérieur avant qu'ils n'atteignent un point de terminaison docling ; et assurez-vous que les consommateurs qui mappent les en-têtes entrants suppriment l'espace de noms des en-têtes Camel, afin que seule la route choisisse les arguments personnalisés.

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 à niveau la résout. 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