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-34486-tomcat_encrypt_bypass_reproduction — CVE-Reproduktion: cve-2026-34486-tomcat_encrypt_bypass_reproduction | Kitploit
Tools/GitHubGitHub/razureink/cve-2026-34486-tomcat_encrypt_bypass_reproduction
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsLernen & Bildung
GitHubrazureink/cve-2026-34486-tomcat_encrypt_bypass_reproduction

cve-2026-34486-tomcat_encrypt_bypass_reproduction

CVE-Reproduktion: cve-2026-34486-tomcat_encrypt_bypass_reproduction

Repository anzeigen
2vor 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

CVE-2026-34486: Umgehung des EncryptInterceptors in Apache Tomcat

FeldWert
CVECVE-2026-34486
CVSS7.5 HOCH
TypFehlende Verschlüsselung sensibler Daten
KomponenteApache Tomcat Cluster EncryptInterceptor
Veröffentlicht2026

Überblick

CVE-2026-34486 ist eine Regression, die durch die unvollständige Behebung von CVE-2026-29146 eingeführt wurde. In der Cluster-Replikation von Apache Tomcat ist der EncryptInterceptor für die Verschlüsselung und Authentifizierung von Cluster-Nachrichten zuständig. Ein Refactoring im Fix für CVE-2026-29146 verlagerte versehentlich den Aufruf von super.messageReceived(msg) aus dem try-catch-Block, der Fehler bei der Entschlüsselung behandelt. Infolgedessen wird, wenn eine Nachricht nicht entschlüsselt werden kann (d.h. sie wird im Klartext empfangen, aber der Interceptor erwartet verschlüsselte Daten), die unverschlüsselte Roh-Nachricht trotzdem an die Handler-Kette weitergegeben, anstatt verworfen zu werden.

Technische Details

Code-Fluss-Regression

Die Methode EncryptInterceptor.messageReceived() wird aufgerufen, wenn eine Cluster-Nachricht eintrifft. Der erwartete Ablauf ist:

  1. Empfangen der rohen Nachrichten-Bytes
  2. Entschlüsseln und Validieren der Nachricht (innerhalb eines try-catch)
  3. Bei erfolgreicher Entschlüsselung: Aufruf von super.messageReceived(msg) zur Weiterleitung der entschlüsselten Nachricht
  4. Bei Fehlschlag der Entschlüsselung: Verwerfen der Nachricht (oder Protokollieren eines Fehlers)

In den verwundbaren Versionen bleibt die Entschlüsselungs- und Validierungslogik zwar in einem try-catch eingeschlossen, aber die Aufrufstruktur wurde so umgestellt, dass super.messageReceived(msg) außerhalb des try-catch-Blocks ausgeführt wird, der die Entschlüsselung schützt. Die Variable msg wird vor dem try-catch deklariert und innerhalb dessen zugewiesen. Wenn die Entschlüsselung eine Exception auslöst, behält msg ihren ursprünglichen (unverschlüsselten/rohen) Wert, und der catch-Block protokolliert lediglich den Fehler – er kehrt nicht vorzeitig zurück. Die Ausführung fährt mit super.messageReceived(msg) und den unverarbeiteten Rohdaten fort.

Das bedeutet, ein Angreifer, der den Tomcat-Cluster-Port erreichen kann, kann beliebige unverschlüsselte Nachrichten einschleusen, die der Interceptor akzeptiert und verarbeitet.

Vereinfachter Pseudocode des Fehlers

root@kitploit:~
public void messageReceived(Message msg) {
    // msg arrives raw
    try {
        // decrypt and populate msg fields
        decrypt(msg);
    } catch (Exception e) {
        log.error("Decryption failed", e);
        // BUG: no return statement here
    }
    // msg is still the original unencrypted object when catch is hit
    super.messageReceived(msg); // outside try-catch → passes raw data
}

Die Behebung muss sicherstellen, dass entweder:

  • super.messageReceived(msg) nur innerhalb des try-Blocks nach erfolgreicher Entschlüsselung aufgerufen wird, oder
  • Der catch-Block sofort zurückkehrt, sodass die unverschlüsselte Nachricht nie weitergeleitet wird.

Betroffene Versionen

ProduktVersionen
Apache Tomcat 1111.0.20
Apache Tomcat 1010.1.53
Apache Tomcat 99.0.116

Reproduktion

Voraussetzungen

  • Eine verwundbare Tomcat-Instanz mit aktivierter Cluster-Replikation unter Verwendung des EncryptInterceptor
  • Netzwerkzugriff auf den Tomcat-Cluster-Port (üblicherweise 4000 oder 5000, konfiguriert über <Receiver>)
  • Python 3.6+

Schritte

  1. Identifizieren Sie ein Tomcat-Cluster-Mitglied, das den EncryptInterceptor in der server.xml konfiguriert hat.
  2. Ermitteln Sie die Empfänger-Adresse und den Port des Clusters.
  3. Führen Sie das Exploit-Skript aus, um eine präparierte rohe Cluster-Nachricht zu senden.
  4. Beobachten Sie, dass die Nachricht vom Empfänger akzeptiert und protokolliert wird, wobei die Verschlüsselungsvalidierung umgangen wird.

PoC

Das Skript exploit.py in diesem Verzeichnis demonstriert die Umgehung. Es konstruiert eine minimale Tomcat-Cluster-Nachricht (basierend auf dem Serialisierungsformat von ClusterMessage) und sendet sie direkt ohne Verschlüsselung an den Empfänger-Port. Ein verwundbarer Interceptor akzeptiert und leitet die Nachricht trotz der fehlenden Verschlüsselung weiter.

Abhilfe

Upgrade auf eine gepatchte Version von Apache Tomcat:

ProduktGepatchte Version
Apache Tomcat 1111.0.21+
Apache Tomcat 1010.1.54+
Apache Tomcat 99.0.117+

Falls ein sofortiges Upgrade nicht möglich ist, schränken Sie den Netzwerkzugriff auf den Tomcat-Cluster-Port auf vertrauenswürdige Hosts ein (z.B. über Firewall-Regeln oder durch Binden des Empfängers an eine Loopback- oder private Schnittstelle).

Referenzen

  • CVE-2026-34486
  • CVE-2026-29146 (ursprüngliche Sicherheitslücke)
  • Apache Tomcat Security Advisories
  • EncryptInterceptor-Dokumentation
Tool herunterladen