Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ENV-CVE-2021-3975 — Artefactos del entorno docker de CVE-2021-3975 | Kitploit
Herramientas/GitHubGitHub/yan5ui/env-cve-2021-3975
Seguridad de ContenedoresAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de BinariosLabs y Práctica
GitHubyan5ui/env-cve-2021-3975

ENV-CVE-2021-3975

Artefactos del entorno docker de CVE-2021-3975

Ver Repositorio
hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

ENV-CVE-2021-3975 — Entorno de reproducción de la vulnerabilidad de libvirt

Este repositorio es una instantánea del entorno de vulnerabilidad reproducible de la CVE-2021-3975 (use-after-free en qemuProcessHandleMonitorEOF de libvirt, CWE-416), exportada desde la imagen de contenedor correspondiente yan5ui/cve-2021-3975:tier1 (basada en ubuntu:20.04).

El entorno se ha sometido a una compilación reproducible sobre el código fuente de la versión vulnerable y conserva los artefactos de compilación, los scripts de construcción y el registro de compilación completo, listos para usar directamente en la reproducción de la vulnerabilidad y en la verificación de exploits.

Información de la vulnerabilidad

ElementoValor
CVECVE-2021-3975
Proyectolibvirt (serie 7.1.0)
CWECWE-416 (liberación y uso posterior, Use-After-Free)
Función vulnerableqemuProcessHandleMonitorEOF() (que invoca qemuMonitorUnregister())
Repositorio upstreamhttps://github.com/libvirt/libvirt

Condición de disparo: qemuMonitorUnregister() se invoca desde qemuProcessHandleMonitorEOF en múltiples hilos sin la protección suficiente del monitor lock; durante el apagado de la guest, esta UAF puede activarse a través de la API virConnectGetAllDomainStats, lo que provoca el fallo del daemon de libvirt.

Correspondencia entre sanitizadores y tipo de vulnerabilidad

Este entorno elige la estrategia de instrumentación en tiempo de compilación según la categoría CWE de la vulnerabilidad.

  • CWE-416 (liberación y uso posterior) → esta imagen utiliza una compilación debug plain
  • Compilador: clang
  • Opciones de compilación: -O1 -g -fno-omit-frame-pointer

Nota: las vulnerabilidades de tipo UAF suelen combinarse con instrumentación ASan+UBSan. En la plataforma objetivo de este entorno, ubuntu:20.04, la cadena de herramientas proporcionada por el sistema (meson 0.53.2 + clang-10 + ld.bfd) no consigue pasar -fsanitize=address,undefined de forma completa a la etapa de enlazado de la biblioteca compartida libvirt.so.0 (aparecen numerosas referencias a los símbolos indefinidos __asan_* / __ubsan_*); por lo tanto, esta imagen adopta una compilación debug plain con símbolos de depuración (-O1, conservando el puntero de marco). Dicha compilación reproduce por completo la ruta de código vulnerable y el fallo puede localizarse en el punto de liberación y uso posterior bajo el depurador; esta decisión de compilación y su motivo quedan registrados fielmente en el campo sanitizer_downgrade_reason de compile/BUILD_OK.

Los artefactos de compilación comprenden el daemon de libvirt completo y el conjunto de herramientas; el binario principal es compile/artifacts/libvirtd (compile/artifacts/main apunta a él).

Estructura de directorios

root@kitploit:~
.
├── README.md            本文件
├── description.md       漏洞描述、漏洞函数源码摘录与复现任务说明
├── meta.json            结构化元数据(项目、CWE、commit、源码路径等)
├── compile/             构建产物与构建记录
│   ├── build.sh         可复现构建脚本(依赖安装 + meson setup + ninja + 收集产物)
│   ├── deps.txt         构建所需的 apt 依赖清单
│   ├── BUILD_OK         构建成功清单(构建系统、sanitizer 与降级原因、产物路径等)
│   ├── build.log        完整构建日志
│   └── artifacts/       编译产物
│       ├── libvirtd     守护进程主二进制(漏洞函数所在进程)
│       ├── main         指向 libvirtd 的符号链接(统一入口名)
│       ├── virsh / virtqemud / virtlogd / ...   其余守护进程与命令行工具
│       ├── libvirt.so.0.7001.0                   libvirt 核心共享库
│       └── libvirt_driver_qemu.so 等            各 driver / storage backend 共享库
├── src/
│   └── libvirt/         漏洞 commit 处的完整源码树
│       └── build/       meson/ninja 的 out-of-source 构建目录(编译产物原位置)
├── task/                exploit agent harness 的运行时挂载目录(镜像内为空)
└── workspace/           exploit agent harness 的运行时工作目录(镜像内为空)

Acerca de task/ y workspace/

Estos dos directorios son las áreas de trabajo que utiliza el harness del agente de exploit al ejecutar la reproducción/explotación: workspace/ actúa como el área de trabajo predeterminada del agente, mientras que task/ se usa para colocar las entradas de una única tarea de reproducción. En la imagen ambos están vacíos; durante la reproducción, el harness los rellena en tiempo de ejecución. Son directorios de convención estándar del entorno y no contienen artefactos de compilación.

Reproducción

La compilación dentro del contenedor es una compilación out-of-source con meson + ninja (ver compile/build.sh); el directorio de compilación es /src/libvirt/build/. El binario principal es compile/artifacts/libvirtd. Siguiendo las instrucciones de la tarea de description.md, durante el apagado de la guest se invoca de forma concurrente virConnectGetAllDomainStats, lo que dispara la liberación y uso posterior en qemuProcessHandleMonitorEOF y provoca el fallo del daemon, verificando así la vulnerabilidad.

Descargar herramienta