
Hohe Schwachstelle (7.5) – CAPEv2/reporting/mongodb.py und reporting/jsondump.py ermöglichen Denial-of-Analysis, wenn tief verschachtelte oder übergroße Verhaltensdokumente orjson-Serialisierungsfehler oder MongoDB-BSON-Größen-/Verschachtelungsgrenzen auslösen, was zu abgeschnittenen oder fehlenden Analyseberichten führt.
Eine schwerwiegende Denial-of-Analysis-Schwachstelle betrifft reporting/mongodb.py und reporting/jsondump.py in CAPEv2 (Commit 52e4b43, vom 17.05.2025). Sie ermöglicht Angreifern, die Samples einreichen können, unvollständige oder fehlende Verhaltensanalyseberichte zu verursachen, indem sie tief verschachtelte oder überdimensionierte Verhaltensdaten erzeugen, die MongoDB-BSON-Grenzen oder orjson-Rekursionsfehler auslösen, wenn das Sample in der Sandbox ausgeführt wird.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HDie Ursache dieser Schwachstelle liegt in CAPEv2s Umgang mit großen, tief verschachtelten Verhaltensberichten, die während der dynamischen Malware-Analyse erstellt werden.
MongoDB-BSON-Dokumentgrößenbegrenzung:
CAPEv2 verwendet MongoDB zum Speichern von Analyseberichten, die eine 16-MB-BSON-Dokumentgrößenbegrenzung haben [1].
Wenn Berichte diese Größe überschreiten, oft aufgrund umfangreicher Prozessbäume, API-Aufrufe oder rekursiver Daten, lehnt die Datenbank das Einfügen ab, was zum Fehlschlagen der Berichterstellung führt.
MongoDB-Verschachtelungstiefenbegrenzung:
MongoDB erzwingt außerdem eine maximale Verschachtelungstiefe von 100 Ebenen pro BSON-Dokument.
Rekursive Malware-Verhaltensweisen können dies leicht überschreiten, was zu Einfügefehlern führt, selbst wenn die Dokumentgröße unter 16 MB liegt.
Python-JSON-Serialisierungsgrenzen:
CAPEv2 verwendet Pythons orjson-Bibliothek, um Ergebnisse in JSON zu serialisieren.
Tief verschachtelte oder rekursive Strukturen führen dazu, dass der Serialisierer an Pythons Rekursionsgrenzen stößt, was zu Serialisierungsfehlern und abgebrochener Berichterstellung führt [2].
Beschneidung und Fehlerbehandlung:
CAPEv2 versucht, diese Probleme zu entschärfen, indem es große Teile des Berichts schrittweise beschneidet (Entfernen von Kindknoten oder ganzen Prozessunterbäumen).
Dies ist jedoch unzureichend, wenn die Verhaltenskomplexität die Beschneidungsschwellenwerte überschreitet, was zu wiederholten Fehlern beim Speichern des Berichts führt.
Dies ist eine Denial-of-Analysis-Schwachstelle in CAPEv2, die dazu führen kann, dass die dynamische Analyse-Engine Verhaltensaktivitäten nicht erfasst oder meldet. Die Ausnutzung ermöglicht es Angreifern, die Verhaltenserkennung zu umgehen und unvollständige oder fehlende Analyseberichte zu erstellen.
In Pipelines, die für das Triage oder die Anreicherung von Bedrohungsinformationen auf CAPEv2 angewiesen sind, kann dieser Fehler zu Folgendem führen:
CAPEv2 — Repository: https://github.com/kevoreilly/CAPEv2
Relevante Commit-/Build-Informationen
52e4b43a2cb508d3483819042cf8e4d8348f3a05[email protected])masterenzok/updates-01Die folgende Tabelle präsentiert Nachweise aus mehreren Analyseaufgaben und zeigt, wie zunehmende Komplexität und Dauer zu MongoDB- und Serialisierungsfehlern führen, was in unvollständigen oder fehlenden Verhaltensberichten resultiert.
Tabelle 1: CAPEv2-Analyseergebnisse, die Korrelation zwischen Aufgabenkomplexität, Berichtsgröße und Fehlerbedingungen zeigen.
Startet 5.000 Prozesse und führt zur Laufzeit eine mehrstufige XOR-Entschlüsselung durch, um eine realistische Umgehung zu emulieren. Für benutzerdefinierte Builds (unterschiedliche Rekursionsrunden, Schlüssellängen oder Prozessanzahl) kontaktieren Sie die Autoren für eine benutzerdefinierte Version.
Demo ausführen:
poc\vathos_demo.exe <IP> <PORT>
Stellen Sie sicher, dass ein Listener auf der angegebenen IP/PORT läuft (z.B. nc, ncat, Metasploit oder ein beliebiger C2-Listener), um Verbindungsversuche zu beobachten. In einer ordnungsgemäß funktionierenden Sandbox wäre der Verbindungsversuch sichtbar; unter den beschriebenen Denial-of-Analysis-Bedingungen erscheint die Verbindung möglicherweise nicht in CAPEv2-Berichten.
180+ SekundenOptionen zum Variieren:
full-proc-memory-dumpsimport-reconstruction-proc-dumpsstore_compressed = yes und store_compressed = noStellen Sie sicher, dass MongoDB und orjson für diese Tests ihre Standardgrenzen verwenden.
Mit zunehmender Tiefe und Komplexität des Prozessbaums können Berichtsfehler auftreten, wie zum Beispiel:
orjson-Rekursionsgrenze erreichtCAPEv2 kann:
Abbildung 1 - Backend-Protokolle zeigen JSON-Dump-Warnungen, orjson/Serialisierungsfehler und MongoDB-OperationFailure-Einträge

Abbildung 2 - Dashboard: failed_analysis

Abbildung 3 - Verhalten-Registerkarte: „Sorry! Kein Verhalten.“

| Zeitlimit (Sek.) | Benutzerdefinierte Einstellungen | Dauer (Sek.) | Protokollierte Prozesse | BSON-Protokolle (Dateien/Größe) | Report.json-Größe (KB) | Fehler/Warnungen | Verhaltensstatus |
|---|
| 60 | enforce-timeout | 413 | 24 | 25 / 126 KB | 613 | – | Verhalten OK |
| 60 | – | 252 | 38 | 39 / 200 KB | 923 | – | Verhalten OK |
| 60 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 230 | 42 | 43 / 230 KB | 1054 | – | Verhalten OK |
| 100 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 330 | 61 | 62 / 318 KB | 1482 | – | Verhalten OK |
| 100 | – | 277 | 81 | 82 / 493 KB | 2032 | – | Verhalten OK |
| 120 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 340 | 72 | 73 / 383 KB | 1793 | – | Verhalten OK |
| 120 | – | – | 88 | 89 / 475 KB | 2228 | – | Verhalten OK |
| 180 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 414 | 90 | 91 / 492 KB | 2356 | MongoDB Code 15 | Kein Verhalten |
| 180 | – | 323 | 88 | 89 / 475 KB | 2228 | – | Verhalten OK |
| 200 | – | 413 | 119 | 120 / 645 KB | 3174 | MongoDB Code 15 | Kein Verhalten |
| 200 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout | – | – | 144 / 726 KB | – | Rekursionsgrenze erreicht, MongoDB Code 15 | Berichterstellung fehlgeschlagen |
| 300 | – | 513 | 146 | 147 / 779 KB | 3676 | MongoDB Code 15 | Kein Verhalten |
| 300 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | – | – | 167 / 892 KB | – | Rekursionsgrenze erreicht, MongoDB Code 15 | Berichterstellung fehlgeschlagen |