
Vulnerabilidade Alta (7,5) - CAPEv2 reporting/mongodb.py e reporting/jsondump.py permitem negação de análise quando documentos de comportamento profundamente aninhados ou superdimensionados disparam erros de serialização orjson ou limites de tamanho/aninhamento BSON do MongoDB, causando relatórios de análise truncados ou ausentes.
Uma vulnerabilidade de Alta Gravidade de negação de análise afeta reporting/mongodb.py e reporting/jsondump.py no CAPEv2 (commit 52e4b43, em 2025-05-17) permite que atacantes que podem enviar amostras causem relatórios de análise comportamental incompletos ou ausentes ao gerar dados de comportamento profundamente aninhados ou superdimensionados que disparam os limites BSON do MongoDB ou erros de recursão do orjson quando a amostra é executada na sandbox.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HA causa raiz desta vulnerabilidade reside no tratamento do CAPEv2 de relatórios de comportamento grandes e profundamente aninhados gerados durante a análise dinâmica de malware.
Limite de Tamanho de Documento BSON do MongoDB:
O CAPEv2 usa o MongoDB para armazenar relatórios de análise, que possuem um limite de tamanho de documento BSON de 16 MB [1].
Quando os relatórios excedem esse tamanho, geralmente devido a árvores de processos extensas, chamadas de API ou dados recursivos, o banco de dados rejeita a inserção, causando falha na geração do relatório.
Limite de Profundidade de Aninhamento do MongoDB:
O MongoDB também impõe uma profundidade máxima de aninhamento de 100 níveis por documento BSON.
Comportamentos de malware recursivos podem facilmente exceder isso, levando a falhas de inserção mesmo quando o tamanho do documento está abaixo de 16 MB.
Limites de Serialização JSON do Python:
O CAPEv2 depende da biblioteca orjson do Python para serializar os resultados em JSON.
Estruturas profundamente aninhadas ou recursivas fazem com que o serializador atinja os limites de recursão do Python, levando a falhas de serialização e à geração de relatórios abortada [2].
Podagem e Tratamento de Erros:
O CAPEv2 tenta mitigar esses problemas podando progressivamente grandes porções do relatório (removendo nós filhos ou subárvores inteiras de processos).
No entanto, isso é insuficiente quando a complexidade do comportamento ultrapassa os limites de podagem, resultando em falhas repetidas ao salvar o relatório.
Esta é uma vulnerabilidade de negação de análise no CAPEv2 que pode fazer com que o mecanismo de análise dinâmica falhe em capturar ou relatar atividade comportamental. A exploração permite que adversários contornem a detecção comportamental e produzam relatórios de análise incompletos ou ausentes.
Em pipelines que dependem do CAPEv2 para triagem ou enriquecimento de inteligência de ameaças, essa falha pode levar a:
CAPEv2 — repositório: https://github.com/kevoreilly/CAPEv2
Informações relevantes de commit / build
52e4b43a2cb508d3483819042cf8e4d8348f3a05[email protected])masterenzok/updates-01A tabela a seguir apresenta evidências de várias tarefas de análise, mostrando como o aumento da complexidade e duração leva a falhas no MongoDB e na serialização, resultando em relatórios de comportamento incompletos ou ausentes.
Tabela 1: Resultados da análise do CAPEv2 mostrando correlação entre complexidade da tarefa, tamanho do relatório e condições de falha.
Cria 5.000 processos e realiza descriptografia XOR em múltiplas rodadas em tempo de execução para simular evasão realista. Para compilações personalizadas (diferentes rodadas de recursão, comprimentos de chave ou volumes de processo), entre em contato com os autores para uma versão personalizada.
Execute a demonstração:
poc\vathos_demo.exe <IP> <PORT>
Certifique-se de que um listener esteja em execução no IP/PORT especificado (ex.: nc, ncat, Metasploit, ou qualquer listener C2) para observar as tentativas de conexão. Em uma sandbox funcionando corretamente, a tentativa de conexão seria visível; sob as condições de negação de análise descritas, a conexão pode não aparecer nos relatórios do CAPEv2.
180+ segundosOpções para variar:
full-proc-memory-dumpsimport-reconstruction-proc-dumpsstore_compressed = yes e store_compressed = noCertifique-se de que o MongoDB e o orjson estão usando seus limites padrão para esses testes.
À medida que a profundidade e a complexidade da árvore de processos aumentam, podem ocorrer falhas de relatório, como:
orjson atingidoO CAPEv2 pode:
Figura 1 - Logs do backend mostram avisos de dump JSON, erros de orjson/serialização e entradas de MongoDB OperationFailure

Figura 2 - Painel: failed_analysis

Figura 3 - Aba Comportamental: "Desculpe! Nenhum comportamento."

| Tempo limite (s) | Configurações Personalizadas | Duração (s) | Processos Registrados | Logs BSON (Arquivos / Tamanho) | Tamanho do Report.json (KB) | Erros / Avisos | Status do Comportamento |
|---|
| 60 | enforce-timeout | 413 | 24 | 25 / 126 KB | 613 | – | Comportamento OK |
| 60 | – | 252 | 38 | 39 / 200 KB | 923 | – | Comportamento OK |
| 60 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 230 | 42 | 43 / 230 KB | 1054 | – | Comportamento OK |
| 100 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 330 | 61 | 62 / 318 KB | 1482 | – | Comportamento OK |
| 100 | – | 277 | 81 | 82 / 493 KB | 2032 | – | Comportamento OK |
| 120 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 340 | 72 | 73 / 383 KB | 1793 | – | Comportamento OK |
| 120 | – | – | 88 | 89 / 475 KB | 2228 | – | Comportamento OK |
| 180 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 414 | 90 | 91 / 492 KB | 2356 | MongoDB Code 15 | Sem comportamento |
| 180 | – | 323 | 88 | 89 / 475 KB | 2228 | – | Comportamento OK |
| 200 | – | 413 | 119 | 120 / 645 KB | 3174 | MongoDB Code 15 | Sem comportamento |
| 200 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout | – | – | 144 / 726 KB | – | Limite de recursão atingido, MongoDB Code 15 | Falha no relatório |
| 300 | – | 513 | 146 | 147 / 779 KB | 3676 | MongoDB Code 15 | Sem comportamento |
| 300 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | – | – | 167 / 892 KB | – | Limite de recursão atingido, MongoDB Code 15 | Falha no relatório |