Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-85245 — Proof-of-concept eseguibile in Spring Boot che riproduce CVE-2026-85245, una divulgazione di dati cross-exchange in camel-thrift, con confronto tra versione affetta e corretta e note di mitigazione. | Kitploit
Strumenti/GitHubGitHub/oscerd/cve-2026-85245
Strumenti DifensiviAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebApprendimento e Formazione
GitHuboscerd/cve-2026-85245

CVE-2026-85245

Proof-of-concept eseguibile in Spring Boot che riproduce CVE-2026-85245, una divulgazione di dati cross-exchange in camel-thrift, con confronto tra versione affetta e corretta e note di mitigazione.

Vedi Repository
1 giorno 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-85245 — camel-thrift: divulgazione di dati tra exchange (defaultInstance condiviso)

Reproduttore proof-of-concept eseguibile per la vulnerabilità di Apache Camel in cui il formato dati Thrift effettuava l'unmarshalling nell'defaultInstance condiviso del tipo di destinazione anziché in una copia nuova, e restituiva quell'oggetto condiviso come corpo dell'exchange. Poiché l'istanza è condivisa a livello di processo, lo stato scritto durante l'unmarshalling di un messaggio rimaneva sull'oggetto ed era visibile a ogni messaggio successivo che utilizzava lo stesso tipo. I campi assenti da un payload successivo conservavano i valori del messaggio precedente, quindi il contenuto appartenente a un mittente poteva essere letto durante l'elaborazione del messaggio di un altro mittente, e exchange concorrenti potevano osservare lo stato parzialmente scritto l'uno dell'altro. In un deployment che serve più di un tenant o utente attraverso la stessa route, ciò costituisce divulgazione dei dati di una parte a un'altra.

Solo Spring Boot. Non esiste un'estensione camel-quarkus-thrift, quindi questo reproduttore include un singolo modulo Camel Spring Boot. (Il difetto è nel ThriftDataFormat del componente, che è indipendente dal runtime.)

RuntimeDirectoryStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-thrift 4.22.0 (affetto; corretto in 4.22.1)

Cosa dimostra

Una route definisce un ThriftDataFormat (basato sul tipo Thrift generato Work) e lo riutilizza per ogni messaggio, come fanno normalmente le route. Due tenant inviano un messaggio attraverso di essa:

  • tenant A: Work{num1=1, op=ADD, comment="TENANT-A-SECRET-…"} — il campo opzionale comment trasporta dati sensibili;
  • tenant B: Work{num1=3, op=SUBTRACT} — nessun campo comment.

La route effettua l'unmarshalling del messaggio del tenant A, poi di quello del tenant B.

  • Affetto: l'oggetto risultante dall'unmarshalling del tenant B ritorna trasportando il comment del tenant A — Thrift assegna solo i campi presenti nei byte in ingresso, ed entrambi i messaggi sono stati deserializzati nella (e restituiti come) stessa istanza condivisa, quindi il campo mancante di B manteneva il valore di A. I due corpi sono letteralmente lo stesso oggetto.
  • Corretto: il comment del tenant B è null — ogni exchange riceve la propria copia ripulita.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: B sees A's secret; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85245-thrift-cross-exchange-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: B's comment is null; >>> Not exploited

Riepilogo della vulnerabilità

ProprietàValore
Componentecamel-thrift (ThriftDataFormat.unmarshal)
CWECWE-488 (Esposizione di un elemento dati alla sessione errata)
GravitàMEDIA
Vettore di attaccoDue messaggi dello stesso tipo Thrift attraverso una singola route; un messaggio successivo che omette un campo eredita il valore del precedente
ImpattoDivulgazione di dati tra scambi / tra tenant; scambi concorrenti possono osservare lo stato parzialmente scritto l'uno dell'altro
Versioni interessateDalla 4.0.0 precedente alla 4.18.5, dalla 4.19.0 precedente alla 4.22.1
Versioni corrette4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24442
CreditoClaude Security Scan Tool

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

I tipi Thrift generati (Work, Operation) sono i fixture di test pubblici dai test camel-thrift di Apache Camel stesso.

La correzione

ThriftDataFormat.unmarshal ora deserializza in una copia per-scambio: TBase instance = defaultInstance.deepCopy(); instance.clear(); — quindi deserializza i byte in instance e lo restituisce. Ogni scambio ottiene il proprio oggetto ripulito, così nessun campo passa tra i messaggi e nessuno scambio condivide un corpo.

Mitigazione se non puoi aggiornare

Copia il corpo deserializzato in una nuova istanza immediatamente dopo l'esecuzione del data format, e non conservare riferimenti all'oggetto restituito.

Disclaimer

Questo repository è pubblicato per scopi educativi e difensivi: per aiutare gli utenti di Apache Camel a comprendere la vulnerabilità, verificare se sono interessati e confermare che l'aggiornamento la risolve. Il "secret" è una stringa marcatore inerte e inventata. Non utilizzare questo materiale contro sistemi di cui non sei proprietario o che non gestisci.

Scarica lo strumento