
CVE-2025-61301 prueba de concepto que demuestra la denegación de análisis en CAPEv2 mediante bifurcación recursiva de procesos que activa los límites de BSON de MongoDB y errores de serialización de orjson, provocando informes incompletos del comportamiento del malware.
Una vulnerabilidad de Alta Gravedad de denegación de análisis afecta a reporting/mongodb.py y reporting/jsondump.py en CAPEv2 (commit 52e4b43, del 2025-05-17) que permite a atacantes que pueden enviar muestras causar informes de análisis de comportamiento incompletos o faltantes al generar datos de comportamiento profundamente anidados o de gran tamaño que activan los límites BSON de MongoDB o errores de recursión de orjson cuando la muestra se ejecuta en el sandbox.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HLa causa raíz de esta vulnerabilidad radica en el manejo por parte de CAPEv2 de informes de comportamiento grandes y profundamente anidados generados durante el análisis dinámico de malware.
Límite de tamaño de documento BSON de MongoDB:
CAPEv2 usa MongoDB para almacenar informes de análisis, los cuales tienen un límite de tamaño de documento BSON de 16 MB [1].
Cuando los informes superan este tamaño, a menudo debido a árboles de procesos extensos, llamadas a la API o datos recursivos, la base de datos rechaza la inserción, lo que hace que la generación del informe falle.
Límite de profundidad de anidamiento de MongoDB:
MongoDB también impone una profundidad máxima de anidamiento de 100 niveles por documento BSON.
Los comportamientos recursivos del malware pueden exceder fácilmente este límite, provocando fallos de inserción incluso cuando el tamaño del documento está por debajo de 16 MB.
Límites de serialización JSON de Python:
CAPEv2 depende de la biblioteca orjson de Python para serializar los resultados en JSON.
Las estructuras profundamente anidadas o recursivas hacen que el serializador alcance los límites de recursión de Python, lo que provoca fallos de serialización y la interrupción de la generación del informe [2].
Poda y manejo de errores:
CAPEv2 intenta mitigar estos problemas podando progresivamente grandes porciones del informe (eliminando nodos hijos o subárboles completos de procesos).
Sin embargo, esto es insuficiente cuando la complejidad del comportamiento supera los umbrales de poda, resultando en fallos repetidos al guardar el informe.
Esta es una vulnerabilidad de denegación de análisis en CAPEv2 que puede provocar que el motor de análisis dinámico falle al capturar o informar la actividad de comportamiento. La explotación permite a los adversarios eludir la detección de comportamiento y producir informes de análisis incompletos o faltantes.
En pipelines que dependen de CAPEv2 para el triaje o el enriquecimiento de inteligencia de amenazas, este fallo puede llevar a:
CAPEv2 — repositorio: https://github.com/kevoreilly/CAPEv2
Información relevante del commit / compilación
52e4b43a2cb508d3483819042cf8e4d8348f3a05[email protected])masterenzok/updates-01La siguiente tabla presenta evidencia de múltiples tareas de análisis, mostrando cómo el aumento de la complejidad y la duración lleva a fallos de MongoDB y de serialización, resultando en informes de comportamiento incompletos o faltantes.
| Tiempo de espera (s) | Configuración personalizada | Duración (s) | Procesos registrados | Registros BSON (Archivos / Tamaño) | Tamaño Report.json (KB) | Errores / Advertencias | Estado del comportamiento |
|---|---|---|---|---|---|---|---|
| 60 | enforce-timeout | 413 | 24 | 25 / 126 KB | 613 | – | Comportamiento OK |
| 60 | – | 252 | 38 | 39 / 200 KB | 923 | – | Comportamiento OK |
| 60 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 230 | 42 | 43 / 230 KB | 1054 | – | Comportamiento OK |
| 100 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 330 | 61 | 62 / 318 KB | 1482 | – | Comportamiento OK |
| 100 | – | 277 | 81 | 82 / 493 KB | 2032 | – | Comportamiento OK |
| 120 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 340 | 72 | 73 / 383 KB | 1793 | – | Comportamiento OK |
| 120 | – | – | 88 | 89 / 475 KB | 2228 | – | Comportamiento OK |
| 180 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 414 | 90 | 91 / 492 KB | 2356 | Código 15 de MongoDB | Sin comportamiento |
| 180 | – | 323 | 88 | 89 / 475 KB | 2228 | – | Comportamiento OK |
| 200 | – | 413 | 119 | 120 / 645 KB | 3174 | Código 15 de MongoDB | Sin comportamiento |
| 200 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout | – | – | 144 / 726 KB | – | Límite de recursión alcanzado, Código 15 de MongoDB | Informe fallido |
| 300 | – | 513 | 146 | 147 / 779 KB | 3676 | Código 15 de MongoDB | Sin comportamiento |
| 300 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall |
Tabla 1: Resultados de análisis de CAPEv2 que muestran la correlación entre la complejidad de la tarea, el tamaño del informe y las condiciones de fallo.
Genera 5.000 procesos y realiza descifrado XOR de múltiples rondas en tiempo de ejecución para emular evasión realista. Para compilaciones personalizadas (diferentes rondas de recursión, longitudes de clave o volúmenes de procesos), contacte a los autores para una versión personalizada.
Ejecutar la demo:
poc\vathos_demo.exe <IP> <PUERTO>
Asegúrese de que un listener esté ejecutándose en la IP/PUERTO especificados (por ejemplo, nc, ncat, Metasploit o cualquier listener C2) para observar los intentos de conexión. En un sandbox que funcione correctamente, el intento de conexión sería visible; bajo las condiciones de denegación de análisis descritas, la conexión puede no aparecer en los informes de CAPEv2.
180+ segundosOpciones a variar:
full-proc-memory-dumpsimport-reconstruction-proc-dumpsstore_compressed = yes y store_compressed = noAsegúrese de que MongoDB y orjson estén usando sus límites predeterminados para estas pruebas.
A medida que aumentan la profundidad y la complejidad del árbol de procesos, pueden ocurrir fallos en la generación de informes como:
orjson alcanzadoCAPEv2 puede:
Figura 1 - Los registros del backend muestran advertencias de volcado JSON, errores de orjson/serialización y entradas de OperationFailure de MongoDB

Figura 2 - Panel de control: failed_analysis

Figura 3 - Pestaña de comportamiento: "¡Lo siento! Sin comportamiento."

| – |
| – |
| 167 / 892 KB |
| – |
| Límite de recursión alcanzado, Código 15 de MongoDB |
| Informe fallido |