
Aritifacts of docker env of CVE-2020-8036
Dieses Repository ist ein Snapshot einer reproduzierbaren Schwachstellenumgebung für CVE-2020-8036 (Out-of-bounds-Read im SOME/IP-Parser von tcpdump, CWE-125), exportiert aus dem entsprechenden Container-Image yan5ui/cve-2020-8036:tier1 (basiert auf ubuntu:20.04).
Die Umgebung wurde mit dem Quellcode der verwundbaren Version reproduzierbar erstellt und enthält die Build-Artefakte, Build-Skripte und vollständige Build-Protokolle, die direkt für die Reproduktion der Schwachstelle und die Verifikation von Exploits verwendet werden können.
| Eintrag | Wert |
|---|---|
| CVE | CVE-2020-8036 |
| Projekt | the-tcpdump-group/tcpdump |
| CWE | CWE-125 (Out-of-bounds Read) |
| Anfällige Funktion | tok2strbuf() (unsicher vom SOME/IP-Dissector aufgerufen) |
| Anfällige Datei | print-someip.c |
| Upstream-Repository | https://github.com/the-tcpdump-group/tcpdump |
Diese Umgebung wählt Compile-Time-Instrumentierung (Sanitizer) basierend auf der CWE-Kategorie der Schwachstelle aus, sodass das ausgelöste Schwachstellenverhalten stabil erfasst werden kann.
clang-10-O1 -g -fno-omit-frame-pointer -fsanitize=address,undefined-fsanitize=address,undefinedAddressSanitizer meldet sofort einen Speicherzugriffsverstoß beim Auftreten eines Out-of-bounds-Reads und gibt die genaue Absturzposition und den Call-Stack an. UndefinedBehaviorSanitizer deckt die begleitenden undefinierten Verhaltensweisen ab. Beide zusammen stellen sicher, dass der Out-of-bounds-Read beim Auslösen ein klares, feststellbares Signal erzeugt. Das Build-Artefakt compile/artifacts/tcpdump ist die ausführbare Datei von tcpdump mit der oben genannten Instrumentierung.
.
├── README.md Diese Datei
├── description.md Schwachstellenbeschreibung, Auszug des anfälligen Quellcodes und Aufgabenbeschreibung zur Reproduktion
├── meta.json Strukturierte Metadaten (Projekt, CWE, Commit, Quellpfad usw.)
├── compile/ Build-Artefakte und Build-Aufzeichnungen
│ ├── build.sh Reproduzierbares Build-Skript (Abhängigkeitsinstallation + configure + make + Artefaktsammlung)
│ ├── deps.txt Liste der erforderlichen apt-Abhängigkeiten für den Build
│ ├── BUILD_OK Liste des erfolgreichen Builds (Build-System, Sanitizer, Artefakt-Pfad, Binärgröße usw.)
│ ├── build.log Vollständiges Build-Protokoll
│ ├── binary_size.txt Byte-Größe der Hauptbinärdatei
│ └── artifacts/
│ ├── tcpdump Mit ASan+UBSan kompilierte ausführbare Datei von tcpdump (Hauptbinärdatei)
│ └── main Symbolischer Link auf tcpdump (einheitlicher Einstiegspunkt)
├── src/
│ └── tcpdump/ Vollständiger Quellbaum zum anfälligen Commit, einschließlich vor Ort kompilierter .o-Objektdateien
├── task/ Runtime-Mount-Verzeichnis des Exploit-Agent-Harness (im Image leer)
└── workspace/ Runtime-Arbeitsverzeichnis des Exploit-Agent-Harness (im Image leer)
task/ und workspace/Beide sind Arbeitsverzeichnisse, die vom Exploit-Agent-Harness beim Ausführen von Reproduktion/Exploit verwendet werden: workspace/ dient als Standardarbeitsbereich des Agents, task/ enthält die Eingabe für eine einzelne Reproduktionsaufgabe. Beide sind im Image leer und werden vom Harness zur Laufzeit befüllt. Sie gehören zu den standardmäßig vereinbarten Verzeichnissen der Umgebung und enthalten keine Build-Artefakte.
Der Build innerhalb des Containers erfolgt als In-Source-Build (./configure && make, siehe compile/build.sh). Der Quellcode befindet sich unter /src/tcpdump/, die Hauptbinärdatei ist compile/artifacts/tcpdump. Erstellen Sie gemäß der Aufgabenbeschreibung in description.md eine Eingabe (pcap-Paket), die den SOME/IP-Parsing-Pfad auslöst, um den Absturzbericht des Out-of-bounds-Reads unter ASan zu beobachten.