Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-78162 — Lauffähiger Proof-of-Concept-Reproduzierer für CVE-2026-78162, der unauthentifizierte Java-Deserialisierung in Apache Camel camel-hazelcast über Spring Boot und Quarkus demonstriert. | Kitploit
Tools/GitHubGitHub/oscerd/cve-2026-78162
DefensivwerkzeugeSchwachstellenanalyseExploitationWebanwendungs-ExploitationLernen & Bildung
GitHuboscerd/cve-2026-78162

CVE-2026-78162

Lauffähiger Proof-of-Concept-Reproduzierer für CVE-2026-78162, der unauthentifizierte Java-Deserialisierung in Apache Camel camel-hazelcast über Spring Boot und Quarkus demonstriert.

Repository anzeigen
9vor 2 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-78162 — camel-hazelcast: verwaltete Instanz ohne Java-Deserialisierungsfilter

Lauffähiger Proof-of-Concept-Reproduzierer für die Apache-Camel-Schwachstelle, bei der camel-hazelcast Hazelcast-Instanzen ohne JavaSerializationFilterConfig auf zwei Konfigurationspfaden erstellte, die von der Härtung aus CVE-2026-43865 nie erreicht wurden. Auf diesen Pfaden deserialisiert ein von Camel erstelltes Hazelcast-Member/Client Werte, die aus dem Cluster gelesen werden, ohne Klassenbeschränkung, sodass ein Angreifer, der in der Lage ist, in den Cluster zu publizieren, ein serialisiertes Java-Objekt seiner Wahl innerhalb der Serialisierungsschicht von Hazelcast deserialisieren lassen kann — Remote Code Execution (CWE-502). Hazelcast-Cluster haben standardmäßig weder Authentifizierung noch TLS aktiviert.

Dieser Reproduzierer nutzt den klarsten der beiden Pfade: ReplicatedHazelcastAggregationRepository, das doStart() überschreibt, ohne super.doStart() aufzurufen, und in einem betroffenen Build sein eigenes lokales Member startet, ohne den Standardfilter anzuwenden. (Der verwandte Pfad, HazelcastDefaultComponent#getOrCreateHzClientInstance() für hazelcastMode=client, wird durch denselben Fix abgedeckt.)

LaufzeitumgebungVerzeichnisStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-hazelcast 4.22.0 (betroffen; behoben in 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-hazelcast 3.29.0 (Camel 4.15.0, betroffen)

Kontrolle „behoben vs. betroffen“: Der Fix ist in Camel 4.18.5 / 4.22.1 / 4.23.0 enthalten. Das Spring-Boot-Modul kann sowohl den betroffenen Build (4.22.0) als auch den behobenen Build (4.22.1) ausführen, sodass es auch das gepatchte Verhalten demonstriert. Kein veröffentlichtes Camel Quarkus bündelt bisher ein behobenes Camel (das neueste, 3.29.0, basiert auf Camel 4.15.0), daher demonstriert das Quarkus-Modul nur den betroffenen Fall.

Was es demonstriert

Die App führt eine Camel-Route aus, die von einem ReplicatedHazelcastAggregationRepository ohne von außen bereitgestellte HazelcastInstance gestützt wird, sodass das Repository sein eigenes lokales Hazelcast-Member startet (Standardcluster dev, Port 5701). In dem betroffenen Build hat dieses Member keine JavaSerializationFilterConfig.

Ein Angreifer-Client tritt dann dem Cluster bei und publiziert ein serialisiertes Objekt in die zugrunde liegende ReplicatedMap. Ein Hazelcast-Client sendet nur Bytes — er speichert oder deserialisiert keine Map-Werte —, sodass jede ausgelöste Deserialisierung dem Opfer-Member zuzuschreiben ist. Das publizierte Objekt ist ein bewusst harmloser Marker, com.example.PwnMarker: Er enthält keine Gadget-Chain und führt keinen Befehl aus, er zeichnet lediglich (über ein JVM-globales Flag) auf, dass sein readObject ausgeführt wurde. Ein echter Angreifer würde hier stattdessen eine bekannte Gadget-Klasse für RCE publizieren — der Nachweis, dass die Klasse überhaupt deserialisiert wurde, genügt.

Da der Standardfilter des Fixes eine Whitelist der Klassennamen-Präfixe java., javax. und org.apache.camel. ist, ist com.example.PwnMarker das perfekte Orakel:

  • Betroffener Build → kein Filter → PwnMarker wird deserialisiert, readObject läuft auf dem Opfer-Member → PROVEN.
  • Behobener Build → die Whitelist lehnt com.example.PwnMarker vor readObject ab → java.lang.SecurityException: Resolving class com.example.PwnMarker is not allowed → nicht ausgenutzt.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Erwartete Ausgabe bei einem betroffenen Build:

=== CVE-2026-78162 — camel-hazelcast ReplicatedHazelcastAggregationRepository ===
=== missing JavaSerializationFilterConfig on the Camel-built member ===

Attacker client joined the victim cluster 'dev' at 127.0.0.1:5701.
Attacker published a com.example.PwnMarker into ReplicatedMap 'aggregation'.

Result:
>>> PROVEN: the Camel-built Hazelcast member deserialized an attacker-supplied, non-whitelisted
>>> class (com.example.PwnMarker) with no JavaSerializationFilterConfig in effect — its readObject
>>> executed inside the victim. A real attacker would publish a gadget class here instead, for RCE.
>>>   PwnMarker.readObject executed inside the victim member; tag=attacker-rce-marker; thread=hz.*.partition-operation.thread-1

Zusammenfassung der Schwachstelle

EigenschaftWert
Komponentecamel-hazelcast (camel-hazelcast-starter / camel-quarkus-hazelcast)
CWECWE-502 (Deserialisierung nicht vertrauenswürdiger Daten)
SchweregradMITTEL
AngriffsvektorEin Angreifer, der eine betroffene Instanz in den Hazelcast-Cluster veröffentlichen kann, mit dem sie verbunden ist; das von Camel erstellte Member/Client deserialisiert das veröffentlichte Objekt ohne Klassenbeschränkung
AuswirkungRemote-Codeausführung innerhalb des Camel-Prozesses (über eine Gadget-Klasse), bevor Camel den Exchange verarbeitet
Betroffene VersionenAb 4.0.0 vor 4.18.5, ab 4.19.0 vor 4.22.1
Behobene Versionen4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24413, CAMEL-24420
Danksagungcattier von TCBS; Leon Zlobecki

Sicherheitshinweis: https://camel.apache.org/security/CVE-2026-78162.html

Die Korrektur

HazelcastSerializationFilterHelper.applyDefault(...) erhielt eine ClientConfig-Überladung und wird nun auf beiden zuvor nicht abgedeckten Pfaden aufgerufen — ReplicatedHazelcastAggregationRepository#doStart() und HazelcastDefaultComponent#getOrCreateHzClientInstance() — sodass jede Hazelcast-Konfiguration, die Camel selbst erstellt, die standardmäßige JavaSerializationFilterConfig trägt (Whitelist java. / javax. / org.apache.camel., Blacklist java.net.). Eine vom Benutzer bereitgestellte Config, ClientConfig oder HazelcastInstance bleibt weiterhin unangetastet. Dieser Sicherheitshinweis ist eine Folgekorrektur zu einer unvollständigen Behebung von CVE-2026-43865.

Abhilfe, wenn Sie nicht aktualisieren können

Stellen Sie eine explizite Hazelcast-Konfiguration bereit, die eine JavaSerializationFilterConfig enthält, oder injizieren Sie eine vorgefertigte HazelcastInstance (eine vom Benutzer bereitgestellte Konfiguration wird niemals von Camel überschrieben); setzen Sie den JVM-weiten -Djdk.serialFilter=...; und aktivieren Sie die Hazelcast-Cluster-Authentifizierung und TLS.

Haftungsausschluss

Dieses Repository wird zu Bildungs- und Verteidigungszwecken veröffentlicht: um Apache Camel-Benutzern zu helfen, die Schwachstelle zu verstehen, zu überprüfen, ob sie betroffen sind, und zu bestätigen, dass ein Upgrade sie behebt. Die Payload ist ein harmloser Marker, der keinen Code ausführt. Verwenden Sie dieses Material nicht gegen Systeme, die Ihnen nicht gehören oder die Sie nicht betreiben.

Tool herunterladen