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
CVE-2016-5195 — Arnés de análisis y validación no armado de CVE-2016-5195 (Dirty COW) con investigación de causa raíz, revisión de parches upstream y PoC segura solo para laboratorio en kernels confirmados. | Kitploit
Herramientas/GitHubGitHub/gogooma125732/cve-2016-5195
Escalada de PrivilegiosAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónPapers e InvestigaciónAprendizaje y Educación
GitHubgogooma125732/cve-2016-5195

CVE-2016-5195

Arnés de análisis y validación no armado de CVE-2016-5195 (Dirty COW) con investigación de causa raíz, revisión de parches upstream y PoC segura solo para laboratorio en kernels confirmados.

Ver Repositorio
hace 6 díasAú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

CVE-2016-5195: condición de carrera del núcleo Linux Dirty COW

Investigación defensiva, validación no armamentizada y análisis de parche para CVE-2016-5195 (Dirty COW), una condición de carrera de copia en escritura (copy-on-write) del núcleo Linux que puede permitir que un usuario local modifique datos asociados a un mapeo de solo lectura y obtenga privilegios elevados.

CampoValor
ComponenteGestión de memoria del núcleo Linux / get_user_pages()
DebilidadCWE-362: Ejecución concurrente que utiliza un recurso compartido con sincronización inadecuada
GravedadAlta, CVSS 3.1: 7.0
VectorCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Requisito del ataqueAcceso local con privilegios bajos
Corrección upstream19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619
Primera versión upstream corregidaLinux 4.8.3; los backports de las distribuciones varían

Información general

Dirty COW es una carrera en el manejo del núcleo Linux de las escrituras forzadas y los mapeos de copia en escritura (COW). Un usuario local puede competir la invalidación de páginas contra una escritura a través de /proc/self/mem. En un núcleo afectado, la carrera puede hacer que los datos asociados a un mapeo privado nominalmente de solo lectura se escriban de vuelta al archivo subyacente.

El impacto público es la escalada local de privilegios cuando un atacante puede aplicar la primitiva a un archivo sensible para la seguridad. La vulnerabilidad se explotó activamente en octubre de 2016. Este repositorio no automatiza esa vía de escalada.

Estructura del repositorio

Marco de validación seguro

El marco predeterminado está restringido intencionadamente:

  • no acepta ninguna ruta de destino ni carga útil controlada por el atacante;
  • crea un archivo temporal con modo 0600 y lo desenlaza inmediatamente;
  • solo provoca la carrera sobre el inodo desechable que sigue abierto;
  • no realiza ninguna conexión de red ni ejecuta ningún comando; y
  • e informa de un marcador fijo benigno.

Compilación

root@kitploit:~
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
  poc.c -o dirtycow-safe -pthread

La primitiva de exploit exclusiva del laboratorio se puede compilar por separado:

root@kitploit:~
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
  exploit.c -o dirtycow-exploit -pthread

Ejecución en un sistema de pruebas Linux aislado

root@kitploit:~
./dirtycow-safe

Recuento de iteraciones opcional y acotado:

root@kitploit:~
./dirtycow-safe --iterations 5000000

Resultados posibles:

  • marker-observed: se observó comportamiento vulnerable en el inodo desechable.
  • marker-not-observed: no concluyente. Que una carrera no se active no demuestra que el núcleo esté corregido.
  • salida 77: la interfaz Linux /proc/self/mem requerida no está disponible.

No utilices el resultado del PoC como comprobación principal del estado del parche. Consulta el aviso de paquetes del núcleo de la distribución en ejecución y verifica que el núcleo parcheado esté activo tras reiniciar.

Primitiva de exploit

exploit.c acepta un archivo explícito y un prefijo de reemplazo, y demuestra la primitiva de escritura de archivo arbitrario en un núcleo afectado. Requiere la confirmación literal --i-understand, aplica límites acotados de carga útil e iteraciones, y no construye una carga útil de escalada de privilegios.

El archivo seleccionado puede modificarse permanentemente. Úsalo solo en un laboratorio desechable y aislado que sea tuyo o para el que tengas autorización expresa de pruebas. El análisis completo de la carrera y de la transición de estado está en ROOT_CAUSE.md.

Evidencia

evidence/evidence.json registra las firmas de código fuente observadas en las revisiones oficiales de Linux anteriores a la corrección y corregidas, el resultado de compilación del PoC sin advertencias y las propiedades de seguridad de la validación. evidence/validation.log proporciona un resumen conciso. La validación capturada no ejecutó la carrera.

Remediación

Instala la actualización del núcleo proporcionada por el fabricante y reinicia con el núcleo parcheado. No determines la exposición solo por la cadena de versión upstream: los núcleos empresariales y de distribución suelen retroimplementar (backport) la corrección sin adoptar el número de versión upstream. Los contenedores usan el núcleo del host, por lo que la remediación debe cubrir el host.

Consulta PATCH_ANALYSIS.md para ver el cambio upstream exacto y VULNERABILITY_REPORT.md para obtener orientación sobre la validación.

Referencias

  • NVD: CVE-2016-5195
  • Linux upstream fix
  • Linux 4.8.3 changelog
  • CISA Known Exploited Vulnerabilities Catalog
  • Red Hat CVE record

Usa este material solo en sistemas que sean tuyos o que tengas autorización expresa para probar.

Descargar herramienta
RutaPropósito
poc.cValidación no armamentizada que usa solo un inodo temporal desenlazado
exploit.cPrimitiva de escritura de archivo arbitrario para un laboratorio desechable autorizado
ROOT_CAUSE.mdAnálisis detallado de la transición de estado vulnerable y de la carrera
VULNERABILITY_REPORT.mdPrecondiciones, causa raíz, impacto y remediación
PATCH_ANALYSIS.mdAnálisis línea a línea de la corrección upstream FOLL_COW
evidence/Salida de validación estructurada y notas de interpretación