CVE-2026-49098
Apache Camel: Camel-Kafka: Die kafka.OVERRIDE_TOPIC- (und andere kafka.*) Exchange-Header-Konstanten verwendeten nicht mit Camel-Präfix versehene Namen, die den vorgelagerten HTTP-Header-Filter umgehen, sodass ein HTTP-Client Kafka-Nachrichten auf ein beliebiges Topic umleiten konnte.
- Veröffentlicht
- 06.07.2026
- Aktualisiert
- 07.07.2026
- CNA zuweisen
- apache
- Beweise beobachtet
- 07.08.2026
Primäres CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:NNiedrig · nächste 30 Tage
- Perzentil
- 47,5 %
- Modelldatum
- 21.09.2026
EPSS ist eine statistische Schätzung, keine Gewissheit oder ein Maß für die Auswirkung. Kombinieren Sie es mit CVSS, KEV-Status, Belichtung und Ihrer Umgebung.
Zusammenfassung
# Schwachstelle durch unsachgemäße Eingabevalidierung und unzureichende Neutralisierung spezieller Elemente in der Ausgabe für eine nachgelagerte Komponente („Injection“) in der Apache-Camel-Kafka-Komponente Der camel-kafka-Producer kann sein konfiguriertes Ziel-Topic zur Laufzeit über den Exchange-Header `kafka.OVERRIDE_TOPIC` überschreiben: `KafkaProducer.evaluateTopic()` gibt den Header-Wert gegenüber dem am Endpoint konfigurierten Topic den Vorrang. Die Konstanten für Steuer-Header in `KafkaConstants` (z. B. `OVERRIDE_TOPIC = kafka.OVERRIDE_TOPIC`, `OVERRIDE_TIMESTAMP = kafka.OVERRIDE_TIMESTAMP`, `PARTITION_KEY = kafka.PARTITION_KEY`) verwendeten einfache, nicht mit Camel-Präfix versehene Werte. Die eigene `KafkaHeaderFilterStrategy` von camel-kafka filtert zwar den Namensraum `kafka.*`, jedoch nur an der Serialisierungsgrenze zwischen Kafka und Exchange (beim Lesen von Kafka-Record-Headern in den Exchange und beim Schreiben von Exchange-Headern in einen Kafka-Record); sie gilt nicht für Header, die in einer Multi-Komponenten-Route von einem vorgelagerten Consumer stammen. Der vorgelagerte HTTP-Consumer verwendet `HttpHeaderFilterStrategy`, das nur den Namensraum `Camel`/`camel` blockiert, sodass ein `kafka.*`-Header ungefiltert durchgelassen wird. Infolgedessen kann in einer Route, die einen HTTP-Consumer (z. B. `platform-http`) mit einem `kafka:`-Producer verbindet, jeder HTTP-Client den Header `kafka.OVERRIDE_TOPIC` setzen und bewirken, dass die Nachricht anstelle des konfigurierten Topics an ein beliebiges Kafka-Topic veröffentlicht wird – wodurch sie auf ein sensibles internes Topic umgeleitet oder Angreifer-gefertigte Nachrichten in ein Topic eingespeist werden können, das von einem kritischen nachgelagerten Dienst konsumiert wird. Die zugehörigen Header `kafka.OVERRIDE_TIMESTAMP` und `kafka.PARTITION_KEY` könnten ebenfalls injiziert werden, um Nachrichten rückzudatieren oder bestimmte Partitionen anzusteuern. Wenn der Brücken-Consumer nicht authentifiziert ist, sind keine Anmeldeinformationen erforderlich. Dieses Problem betrifft Apache Camel: von 4.0.0 vor 4.14.8, von 4.15.0 vor 4.18.3, von 4.19.0 vor 4.21.0. Benutzern wird empfohlen, auf Version 4.21.0 zu aktualisieren, die das Problem behebt. Benutzer des 4.14.x-LTS-Release-Strangs sollten auf 4.14.8 aktualisieren. Benutzer des 4.18.x-Release-Strangs sollten auf 4.18.3 aktualisieren. Nach der Aktualisierung müssen Routen, die Kafka-Header über die rohen Header-Namen setzen oder lesen, die Namen `CamelKafka*` verwenden (z. B. `CamelKafkaOverrideTopic` und `CamelKafkaTopic`) anstelle der alten `kafka.*`-Werte. Für Bereitstellungen, die nicht sofort aktualisieren können, sollten die `kafka.*`-Header vor dem `kafka:`-Producer aus jedem nicht vertrauenswürdigen Eingang entfernt werden (z. B. `removeHeaders('kafka.*')` am Anfang der Route), und das Ziel-Topic sollte aus einer vertrauenswürdigen Quelle gesetzt werden.
Verantwortungsvoller Umgang
Verwenden Sie Schwachstelleninformationen nur auf Systemen, die Sie besitzen oder zu deren Testen Sie berechtigt sind. Kitploit verlinkt auf öffentliche Forschungsmetadaten und speichert keinen Exploit-Code oder bösartige Payloads.