CVE-2026-40859
Apache Camel: Camel-Vertx-Http: Deserializzazione Java non sicura dei corpi delle risposte HTTP tramite un ObjectInputStream grezzo quando transferException è abilitato
- Pubblicato
- 6 lug 2026
- Aggiornato
- 6 lug 2026
- Assegnazione CNA
- apache
- Evidenza osservata
- 6 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HBasso · prossimi 30 giorni
- Percentile
- 57,2%
- Data del modello
- 21 set 2026
L'EPSS è una stima statistica, non una certezza o una misura di impatto. Combinalo con CVSS, stato KEV, esposizione e ambiente.
Riepilogo
# Vulnerabilità di deserializzazione di dati non attendibili in Apache Camel Vulnerabilità di deserializzazione di dati non attendibili in Apache Camel. Il componente camel-vertx-http deserializza i corpi delle risposte HTTP che trasportano il Content-Type application/x-java-serialized-object utilizzando un raw java.io.ObjectInputStream, senza applicare alcun ObjectInputFilter (VertxHttpHelper.deserializeJavaObjectFromStream). Questo percorso di deserializzazione viene raggiunto solo quando l'endpoint producer è configurato con transferException=true (o con allowJavaSerializedObject=true a livello di componente) e throwExceptionOnFailure è lasciato al suo valore predefinito di true; in tal caso, una risposta HTTP backend con stato 5xx e content-type application/x-java-serialized-object ha il suo corpo deserializzato senza restrizioni di classe. Un attaccante che controlla il backend con cui il producer Camel comunica — tramite una posizione man-in-the-middle su una connessione non crittografata (HTTP semplice), o compromettendo il servizio backend — può restituire un oggetto Java serializzato appositamente costruito e, se una catena gadget adatta è presente nel classpath, ottenere l'esecuzione remota di codice sull'host dell'applicazione Camel. Il percorso non è raggiungibile nella configurazione predefinita, dove transferException è false. Questa issue riguarda Apache Camel: dalla 4.0.0 prima della 4.14.8, dalla 4.15.0 prima della 4.18.3, dalla 4.19.0 prima della 4.20.0. Si consiglia agli utenti di aggiornare alla versione 4.20.0, che risolve il problema. Se gli utenti sono sul ramo di release LTS 4.14.x, si consiglia di aggiornare alla 4.14.8. Se gli utenti sono sul ramo di release 4.18.x, si consiglia di aggiornare alla 4.18.3. Dopo l'aggiornamento, la deserializzazione eseguita da entrambe le utility helper è vincolata da un ObjectInputFilter predefinito (allow-list java.**;javax.**;org.apache.camel.**;!*), che può essere personalizzato tramite la nuova opzione endpoint deserializationFilter o la proprietà di sistema JVM-wide -Djdk.serialFilter. Per le distribuzioni che non possono aggiornare immediatamente: non abilitare transferException=true (o allowJavaSerializedObject=true) sui producer che comunicano con backend non attendibili o raggiungibili in rete; assicurarsi che le connessioni del producer utilizzino TLS (https) così che una risposta non possa essere sostituita da un man-in-the-middle; e, dove l'opzione è richiesta, impostare una allow-list esplicita -Djdk.serialFilter (ad esempio java.**;org.apache.camel.**;!*) per vincolare la deserializzazione.
Utilizzo responsabile
Utilizza le informazioni sulla vulnerabilità solo sui sistemi che possiedi o che sei autorizzato a testare. Kitploit si collega ai metadati della ricerca pubblica e non memorizza codici exploit o payload dannosi.