Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2026-34486-tomcat_encrypt_bypass_reproduction — Riproduzione CVE: cve-2026-34486-tomcat_encrypt_bypass_reproduction | Kitploit
Strumenti/GitHubGitHub/razureink/cve-2026-34486-tomcat_encrypt_bypass_reproduction
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e Formazione
GitHubrazureink/cve-2026-34486-tomcat_encrypt_bypass_reproduction

cve-2026-34486-tomcat_encrypt_bypass_reproduction

Riproduzione CVE: cve-2026-34486-tomcat_encrypt_bypass_reproduction

Vedi Repository
21 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-34486: Bypass dell'EncryptInterceptor di Apache Tomcat

CampoValore
CVECVE-2026-34486
CVSS7.5 HIGH
TipoMancata cifratura di dati sensibili
ComponenteApache Tomcat Cluster EncryptInterceptor
Pubblicazione2026

Panoramica

CVE-2026-34486 è una regressione introdotta dalla correzione incompleta di CVE-2026-29146. Nella replica del cluster di Apache Tomcat, l'EncryptInterceptor è responsabile della cifratura e dell'autenticazione dei messaggi del cluster. Un refactoring nella correzione di CVE-2026-29146 ha involontariamente spostato la chiamata super.messageReceived(msg) fuori dal blocco try-catch che gestisce gli errori di decifratura. Di conseguenza, quando la decifratura di un messaggio fallisce (cioè, viene ricevuto in chiaro ma l'interceptor si aspetta dati cifrati), il messaggio non cifrato grezzo viene comunque passato lungo la catena di handler invece di essere scartato.

Dettagli tecnici

Regressione del flusso di codice

Il metodo EncryptInterceptor.messageReceived() viene invocato quando arriva un messaggio del cluster. Il flusso previsto è:

  1. Ricevere i byte grezzi del messaggio
  2. Decifrare e convalidare il messaggio (all'interno di un try-catch)
  3. Se la decifratura riesce, chiamare super.messageReceived(msg) per inoltrare il messaggio decifrato
  4. Se la decifratura fallisce, scartare il messaggio (o registrare un errore)

Nelle versioni vulnerabili, la logica di decifratura/convalida rimane racchiusa in un try-catch, ma la catena di chiamate è stata ristrutturata in modo che super.messageReceived(msg) venga eseguito fuori dal blocco try-catch che protegge la decifratura. La variabile msg viene dichiarata prima del try-catch e assegnata al suo interno. Quando la decifratura lancia un'eccezione, msg mantiene il suo valore iniziale (non cifrato/grezzo), e il blocco catch registra solo l'errore — non esce anticipatamente. L'esecuzione prosegue fino a super.messageReceived(msg) con i dati grezzi non elaborati.

Ciò significa che un attaccante in grado di raggiungere la porta del cluster Tomcat può iniettare messaggi arbitrari non cifrati che l'interceptor accetterà ed elaborerà.

Pseudocodice semplificato del bug

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
}

La correzione deve garantire che:

  • super.messageReceived(msg) venga chiamato solo all'interno del blocco try dopo una decifratura riuscita, oppure
  • Il blocco catch restituisca immediatamente il controllo in modo che il messaggio non cifrato non venga mai inoltrato.

Versioni interessate

ProdottoVersioni
Apache Tomcat 1111.0.20
Apache Tomcat 1010.1.53
Apache Tomcat 99.0.116

Riproduzione

Prerequisiti

  • Un'istanza Tomcat vulnerabile con la replica del cluster abilitata tramite l'EncryptInterceptor
  • Accesso di rete alla porta del cluster Tomcat (solitamente 4000 o 5000, configurata tramite <Receiver>)
  • Python 3.6+

Passaggi

  1. Identificare un membro del cluster Tomcat con l'EncryptInterceptor configurato in server.xml.
  2. Determinare l'indirizzo e la porta del receiver del cluster.
  3. Eseguire lo script exploit per inviare un messaggio di cluster grezzo appositamente costruito.
  4. Osservare che il messaggio viene accettato e registrato dal receiver, aggirando la convalida della cifratura.

PoC

Lo script exploit.py in questa directory dimostra il bypass. Costruisce un messaggio minimale del cluster Tomcat (basato sul formato di serializzazione ClusterMessage) e lo invia direttamente alla porta del receiver senza alcuna cifratura. Un interceptor vulnerabile accetterà e inoltrerà il messaggio nonostante la mancata cifratura.

Mitigazione

Aggiornare a una versione corretta di Apache Tomcat:

ProdottoVersione corretta
Apache Tomcat 1111.0.21+
Apache Tomcat 1010.1.54+
Apache Tomcat 99.0.117+

Se non è possibile aggiornare immediatamente, limitare l'accesso di rete alla porta del cluster Tomcat solo agli host fidati (ad esempio tramite regole firewall o associando il receiver a un'interfaccia di loopback o privata).

Riferimenti

  • CVE-2026-34486
  • CVE-2026-29146 (vulnerabilità originale)
  • Avvisi di sicurezza di Apache Tomcat
  • Documentazione di EncryptInterceptor
Scarica lo strumento