Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ENV-CVE-2021-3975 — Aritifacts of docker env of CVE-2021-3975 | Kitploit
Tools/GitHubGitHub/yan5ui/env-cve-2021-3975
Container SecurityVulnerability AnalysisExploitationLearning & EducationBinary ExploitationLabs & Practice
GitHubyan5ui/env-cve-2021-3975

ENV-CVE-2021-3975

Aritifacts of docker env of CVE-2021-3975

Repository anzeigen
vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ENV-CVE-2021-3975 — libvirt-Schwachstellen-Reproduktionsumgebung

Dieses Repository ist ein Snapshot der reproduzierbaren Schwachstellenumgebung für CVE-2021-3975 (libvirt qemuProcessHandleMonitorEOF use-after-free, CWE-416), exportiert aus dem zugehörigen Container-Image yan5ui/cve-2021-3975:tier1 (basierend auf ubuntu:20.04).

Die Umgebung wurde auf der Quellcode-Version mit der Schwachstelle einmal reproduzierbar gebaut und enthält die Build-Artefakte, Build-Skripte und vollständige Build-Logs, die direkt zur Reproduktion der Schwachstelle und zum Exploit-Nachweis verwendet werden können.

Schwachstelleninformationen

PunktWert
CVECVE-2021-3975
Projektlibvirt (Serie 7.1.0)
CWECWE-416 (Use-After-Free)
Vulnerable FunktionqemuProcessHandleMonitorEOF() (Aufruf von qemuMonitorUnregister())
Upstream-Repositoryhttps://github.com/libvirt/libvirt

Auslösebedingung: qemuMonitorUnregister() wird in qemuProcessHandleMonitorEOF von mehreren Threads aufgerufen und nicht ausreichend durch die Monitor-Sperre geschützt; während des Herunterfahrens der Gast-VM kann über die virConnectGetAllDomainStats-API dieser UAF ausgelöst werden, was zum Absturz des libvirt-Daemons führt.

Zuordnung von Sanitizer und Schwachstellentyp

Diese Umgebung wählt eine Compile-Zeit-Instrumentierungsstrategie basierend auf der CWE-Kategorie der Schwachstelle.

  • CWE-416 (Use-After-Free) → Dieses Image verwendet einen Plain-Debug-Build
  • Compiler: clang
  • Compile-Optionen: -O1 -g -fno-omit-frame-pointer

Erläuterung: UAF-Schwachstellen werden normalerweise mit ASan+UBSan-Instrumentierung behandelt. Auf der Zielplattform ubuntu:20.04 dieser Umgebung kann die mitgelieferte Toolchain (meson 0.53.2 + clang-10 + ld.bfd) bei der Verlinkung von Shared Libraries -fsanitize=address,undefined nicht vollständig an den Link-Schritt von libvirt.so.0 übergeben (es treten viele undefinierte Symbolreferenzen __asan_* / __ubsan_* auf). Daher verwendet dieses Image einen Plain-Debug-Build mit Debug-Symbolen (-O1, Beibehaltung des Frame Pointers). Dieser Build reproduziert den Schwachstellen-Pfad vollständig; ein Absturz kann unter dem Debugger auf die Use-After-Free-Stelle zurückgeführt werden. Diese Build-Entscheidung und der Grund sind im Feld sanitizer_downgrade_reason der Datei compile/BUILD_OK dokumentiert.

Die Build-Artefakte sind der vollständige libvirt-Daemon und das Toolset; die Haupt-Binärdatei ist compile/artifacts/libvirtd (compile/artifacts/main zeigt darauf).

Verzeichnisstruktur

root@kitploit:~
.
├── README.md            Diese Datei
├── description.md       Schwachstellenbeschreibung, Quellcode-Auszüge der anfälligen Funktion und Aufgabenbeschreibung zur Reproduktion
├── meta.json            Strukturierte Metadaten (Projekt, CWE, Commit, Quellcode-Pfade usw.)
├── compile/             Build-Artefakte und Build-Aufzeichnungen
│   ├── build.sh         Reproduzierbares Build-Skript (Abhängigkeiten installieren + meson setup + ninja + Artefakte sammeln)
│   ├── deps.txt         Liste der benötigten apt-Abhängigkeiten für den Build
│   ├── BUILD_OK         Erfolgreiche Build-Liste (Build-System, Sanitizer und Downgrade-Grund, Artefakt-Pfade usw.)
│   ├── build.log        Vollständiges Build-Log
│   └── artifacts/       Kompilierte Artefakte
│       ├── libvirtd     Haupt-Binärdatei des Daemons (Prozess, der die anfällige Funktion enthält)
│       ├── main         Symbolischer Link auf libvirtd (einheitlicher Einstiegspunktname)
│       ├── virsh / virtqemud / virtlogd / ...    Übrige Daemons und Befehlszeilen-Tools
│       ├── libvirt.so.0.7001.0                   Libvirt-Kern-Shared-Library
│       └── libvirt_driver_qemu.so usw.           Shared Libraries der verschiedenen Treiber / Storage-Backends
├── src/
│   └── libvirt/         Vollständiger Quellcode-Baum beim Commit der Schwachstelle
│       └── build/       Out-of-Source-Build-Verzeichnis von meson/ninja (ursprüngliche Position der Kompilierungsartefakte)
├── task/                Laufzeit-Einhängeverzeichnis des Exploit-Agent-Harnesses (leer im Image)
└── workspace/           Laufzeit-Arbeitsverzeichnis des Exploit-Agent-Harnesses (leer im Image)

Über task/ und workspace/

Beide sind Arbeitsverzeichnisse, die der Exploit-Agent-Harness während der Reproduktion/Ausnutzung verwendet: workspace/ dient als Standard-Arbeitsbereich des Agents, task/ wird verwendet, um Eingaben für eine einzelne Reproduktionsaufgabe abzulegen. Im Image sind beide leer; sie werden zur Laufzeit vom Harness befüllt. Es handelt sich um Standard-Konventionsverzeichnisse der Umgebung, die keine Build-Artefakte enthalten.

Reproduktionsmethode

Der Build erfolgt im Container als Out-of-Source-Build mit meson + ninja (siehe compile/build.sh). Das Build-Verzeichnis ist /src/libvirt/build/. Die Haupt-Binärdatei ist compile/artifacts/libvirtd. Gemäß den Aufgabenbeschreibungen in description.md wird während des Herunterfahrens der Gast-VM parallel virConnectGetAllDomainStats aufgerufen, um den Use-After-Free in qemuProcessHandleMonitorEOF auszulösen und den Daemon zum Absturz zu bringen, um die Schwachstelle zu verifizieren.

Tool herunterladen