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-91858 — Reproducteur exécutable Spring Boot et Quarkus pour CVE-2026-91858, une XXE dans Apache Camel camel-fop via un TransformerFactory tiers, avec vérification des versions affectée et corrigée. | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-91858
Outils DéfensifsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebApprentissage et Éducation
GitHuboscerd/cve-2026-91858

CVE-2026-91858

Reproducteur exécutable Spring Boot et Quarkus pour CVE-2026-91858, une XXE dans Apache Camel camel-fop via un TransformerFactory tiers, avec vérification des versions affectée et corrigée.

Voir le dépôt
10il y a 19h 12mPas 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-91858 — camel-fop : XML External Entity (XXE) via un TransformerFactory tiers

Reproducteur de preuve de concept exécutable pour la vulnérabilité Apache Camel où le FopProducer de camel-fop créait son javax.xml.transform.TransformerFactory avec uniquement FEATURE_SECURE_PROCESSING avant d'exécuter une transformation identité sur le corps du message XSL-FO. Sur le transformateur intégré au JDK, cette fonctionnalité seule vide déjà les limites accessExternalDTD/accessExternalStylesheet, de sorte que les ressources externes sont refusées. Mais lorsqu'un TransformerFactory JAXP tiers tel que Saxon-HE est présent sur le classpath — par exemple parce que l'application utilise aussi camel-xslt-saxon ou camel-saxon — TransformerFactory.newInstance() renvoie cette implémentation, et FEATURE_SECURE_PROCESSING seul ne restreint pas l'accès aux ressources externes sur celle-ci. Un DOCTYPE avec un sous-ensemble externe déclaré dans le corps XSL-FO est alors résolu pendant la transformation du corps, de sorte que le document d'un expéditeur externe peut lire des fichiers lisibles par le processus Camel ou lui faire émettre des requêtes vers des hôtes qu'il nomme (CWE-611).

RuntimeRépertoirePile
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-fop 4.22.0 (affecté ; corrigé 4.22.1) + Saxon-HE 13.0
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-fop (Camel 4.22.0, affecté ; contrôle corrigé CQ 3.40.0 / Camel 4.22.1) + Saxon-HE 13.0

Les deux modules démontrent le comportement affecté et corrigé face au véritable FopProducer. Saxon-HE est sur le classpath dans les deux — c'est la condition préalable à la faille ; un déploiement par défaut utilisant le transformateur du JDK n'est pas affecté avant ni après le correctif.

Ce que cela démontre

Le point de terminaison de vérification /exploit/attack démarre un callback HTTP in-process et envoie un document XSL-FO à fop:pdf dont le DOCTYPE déclare une DTD externe pointant vers ce callback :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fo:root SYSTEM "http://localhost:<port>/external.dtd">
<fo:root …>…Hello…</fo:root>

L'oracle est simplement si le callback a été demandé — une preuve définitive que la ressource externe a été récupérée :

  • Affecté : TransformerFactory.newInstance() renvoie Saxon, qui, sous le seul traitement sécurisé, récupère encore la DTD externe — le callback est déclenché (le même mécanisme lit les URL file://).
  • Corrigé : ACCESS_EXTERNAL_DTD est défini à "", donc Saxon refuse la DTD externe ; le callback n'est jamais déclenché.
# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: callback hit = true; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -Djava.awt.headless=true -jar target/cve-2026-91858-fop-xxe-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: callback hit = false; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.22.0): callback hit = true
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -Djava.awt.headless=true -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: callback hit = false

Résumé de la vulnérabilité

PropriétéValeur
Composantcamel-fop (FopProducer)
CWECWE-611 (Restriction inappropriée de la référence d'entité externe XML)
GravitéMOYENNE
Vecteur d'attaqueLe XSL-FO d'un expéditeur externe atteint un producteur fop:, sur un déploiement qui dispose également d'un TransformerFactory JAXP tiers (par ex. Saxon-HE) sur le classpath
ImpactLecture de fichiers locaux accessibles au processus Camel ; SSRF vers des hôtes internes nommés par le document
Versions affectéesDe 4.0.0 avant 4.18.5, de 4.19.0 avant 4.22.1 (uniquement avec un TransformerFactory non-JDK présent)
Versions corrigées4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24605
CréditClaude Security Scan Tool

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

Le module Quarkus affecté est construit sur CQ 3.39.0 (Camel 4.22.0). Le correctif de contrôle est CQ 3.40.0 (Camel 4.22.1). Saxon-HE 13.0 est ajouté aux deux modules pour représenter une application qui utilise également camel-xslt-saxon/camel-saxon ; sans un TransformerFactory non-JDK, la faille n'est pas atteignable.

Le correctif

FopProducer définit désormais également XMLConstants.ACCESS_EXTERNAL_DTD et XMLConstants.ACCESS_EXTERNAL_STYLESHEET sur la chaîne vide sur le TransformerFactory qu'il crée (en plus de FEATURE_SECURE_PROCESSING), conformément à la configuration de traitement XML sécurisé utilisée par XmlConverter. L'accès externe aux DTD et aux feuilles de style est donc refusé sur toute implémentation JAXP qui respecte ces attributs, y compris Saxon-HE.

Atténuation si vous ne pouvez pas mettre à niveau

N'envoyez pas de XSL-FO non fiable à un producteur fop:, ou retirez du classpath le TransformerFactory JAXP alternatif (tel que Saxon-HE) afin que le transformateur du JDK — qui refuse déjà les DTD externes en traitement sécurisé — soit utilisé.

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. La DTD externe pointe vers un callback en cours de processus sur localhost ; rien en dehors du reproducteur n'est contacté et aucun fichier sensible n'est lu. 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