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-78165 — Lauffähiger Proof-of-Concept-Reproduzierer für CVE-2026-78165, der die ungefilterte JDK-Deserialisierung von Redis-PUBLISH-Payloads in Apache Camel camel-spring-redis demonstriert. | Kitploit
Tools/GitHubGitHub/oscerd/cve-2026-78165
DefensivwerkzeugeSchwachstellenanalyseExploitationLernen & Bildung
GitHuboscerd/cve-2026-78165

CVE-2026-78165

Lauffähiger Proof-of-Concept-Reproduzierer für CVE-2026-78165, der die ungefilterte JDK-Deserialisierung von Redis-PUBLISH-Payloads in Apache Camel camel-spring-redis demonstriert.

Repository anzeigen
3vor 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-78165 — camel-spring-redis: ungefilterte JDK-Deserialisierung von Redis-Payloads

Lauffähiger Proof-of-Concept-Reproduzierer für die Apache-Camel-Schwachstelle, bei der camel-spring-redis, wenn keine serializer-Option konfiguriert war, einen reinen JdkSerializationRedisSerializer ohne java.io.ObjectInputFilter erzeugte und ihn für jeden Lesevorgang verwendete. RedisConsumer.setBody wandte ihn auf die Rohbytes jeder Nachricht an, die auf den abonnierten Kanälen veröffentlicht wurde, bevor der Exchange konstruiert wurde — ein Akteur, der PUBLISH auf einem abonnierten Kanal ausführen konnte, erreichte somit direkt die Deserialisierungs-Senke und konnte readObject eines beliebigen serialisierten Objektgraphen ausführen (Remote Code Execution, CWE-502). Derselbe Standard-Serializer lag auch den Lese-Befehlen des Producers (GET/HGET/HGETALL/HVALS) und dem SpringRedisIdempotentRepository zugrunde.

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

Der Defekt reicht bis zur Einführung der Komponente in 2.11.0 zurück, sodass jede betroffene Version und das Camel 4.15.0 im neuesten Camel Quarkus anfällig sind. Der Fix wird mit Camel 4.18.5 / 4.22.1 / 4.23.0 ausgeliefert; das Spring-Boot-Modul führt sowohl den betroffenen Build (4.22.0) als auch den behobenen Build (4.22.1) aus. Kein veröffentlichtes Camel Quarkus bündelt bisher ein behobenes Camel.

Was es demonstriert

Die App führt eine Camel-Route aus, die cve-channel mit SUBSCRIBE abonniert, ohne serializer-Option (sodass der Standard- JdkSerializationRedisSerializer verwendet wird). Der Angreifer ist ein einfacher Redis-Client, der nur PUBLISH auf diesen Kanal ausführen kann — er hat keinen Zugriff auf den Camel-Prozess. Er veröffentlicht die rohen serialisierten Bytes eines bewusst harmlosen com.example.PwnMarker, dessen readObject lediglich ein JVM-globales Flag umschaltet (kein Gadget, kein Befehl). Beim betroffenen Build deserialisiert der Consumer ihn und readObject wird ausgeführt; beim behobenen Build lehnt die standardmäßige Allow-List (Standard- java./javax.- und org.apache.camel.-Typen) com.example.PwnMarker mit InvalidClassException: filter status: REJECTED ab.

cd camel-spring-boot
mvn clean package
docker compose up -d --build     # starts Redis + the reproducer
curl -s http://localhost:8080/exploit/attack
docker compose down

Erwartete Ausgabe beim betroffenen Build:

Attacker connects to Redis redis:6379 and PUBLISHes a serialized com.example.PwnMarker to channel 'cve-channel'.
PUBLISH delivered to 1 subscriber(s).

Result:
>>> PROVEN: the Redis consumer deserialized the attacker-published, non-allow-listed class
>>> (com.example.PwnMarker) with no ObjectInputFilter — its readObject executed.

Zusammenfassung der Schwachstelle

EigenschaftWert
Komponentecamel-spring-redis (camel-spring-redis-starter / camel-quarkus-spring-redis)
CWECWE-502 (Deserialisierung nicht vertrauenswürdiger Daten)
SchweregradHOCH
AngriffsvektorPUBLISH an einen Kanal, den ein Camel-spring-redis-Consumer abonniert (oder Kontrolle über einen Redis-Schlüssel, den der Producer liest); der Standard-Serializer deserialisiert die Nutzlast ohne Filter
AuswirkungRemote-Code-Ausführung innerhalb des Camel-Prozesses über eine Gadget-Klasse, bevor jegliche Routenlogik ausgeführt wird
Betroffene VersionenAb 2.11.0 vor 4.18.5, ab 4.19.0 vor 4.22.1
Behobene Versionen4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24421
DanksagungLeon Zlobecki

Advisory: https://camel.apache.org/security/CVE-2026-78165.html

Die Behebung

Eine neue Endpoint-Option deserializationFilter steuert den Filter, der angewendet wird, während der Standard-Serializer Nutzlasten liest. Wenn sie nicht gesetzt ist, wird der JVM-weite jdk.serialFilter beachtet, sofern vorhanden, andernfalls wird eine konservative Allow-List (Standard-Java- und Apache-Camel-Typen; java.net verweigert) angewendet, und in 4.23.0/4.22.1 werden zusätzlich die JEP-290-Graph-Shape- Limits durchgesetzt. Der Serializer wird über seinen Converter-basierten Konstruktor mit einem deserialisierenden Converter konstruiert, der den Filter auf dem Stream setzt, bevor der Graph gelesen wird. Das Setzen von serializer auf einen benutzerdefinierten RedisSerializer umgeht den Filter weiterhin, da Camel dann nicht mehr kontrolliert, wie die Nutzlast gelesen wird.

Gegenmaßnahmen, wenn Sie nicht aktualisieren können

Setzen Sie den JVM-weiten -Djdk.serialFilter=... (der betroffene Pfad beachtet ihn), oder setzen Sie die Endpoint-Option serializer auf einen Nicht-Java-Serializer wie StringRedisSerializer (als serializer-Option, nicht nur auf einem benutzerdefinierten redisTemplate). Erfordern Sie Authentifizierung auf Redis und beschränken Sie, wer auf die abonnierten Kanäle veröffentlichen darf.

Haftungsausschluss

Dieses Repository wird zu Bildungs- und Verteidigungszwecken veröffentlicht: um Apache-Camel-Nutzern zu helfen, die Schwachstelle zu verstehen, zu überprüfen, ob sie betroffen sind, und zu bestätigen, dass ein Upgrade sie behebt. Die Nutzlast 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