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-2025-4138_tarfile_filter_bypass — CVE-2025-4138 - Escritura arbitraria de archivos fuera del directorio de extracción | Kitploit
Herramientas/GitHubGitHub/thefizzyfish/cve-2025-4138_tarfile_filter_bypass
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de Penetración
GitHubthefizzyfish/cve-2025-4138_tarfile_filter_bypass

CVE-2025-4138_tarfile_filter_bypass

CVE-2025-4138 - Escritura arbitraria de archivos fuera del directorio de extracción

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
Ver Repositorio
3hace 6 mesesAún no revisado

CVE-2025-4138 — Bypass del filter="data" de Python tarfile

Escritura arbitraria de archivos fuera del directorio de extracción mediante una cadena de symlinks PATH_MAX.

Versiones afectadas

  • Python 3.12.0 – 3.12.10
  • Python 3.13.0 – 3.13.3
  • Corregido en 3.12.11 / 3.13.4

Crédito:

Reportero: Caleb Brown (Google)

Cómo funciona

El filtro de datos tarfile de Python valida los destinos de los symlinks usando os.path.realpath(). Cuando la ruta resuelta supera PATH_MAX (4096 bytes en Linux), realpath() deja de resolver silenciosamente y añade los componentes restantes — incluido ../ — como cadenas literales. El filtro ve una ruta segura; el kernel sigue el recorrido real.

El exploit construye un tar con cuatro etapas:

  1. Cadena de symlinks — 16 niveles de directorios largos (247 caracteres cada uno) con alias de symlink cortos (a→ddd..., b→ddd...). Infla la ruta resuelta a ~3968 bytes.
  2. Symlink pivote — ../ × 16 al final de la cadena. realpath() se desborda y no puede resolverlo. El kernel retrocede hasta la raíz de extracción.
  3. Symlink de escape — Enruta a través del pivote, hasta /, y baja al directorio objetivo.
  4. Archivo payload — Escrito a través del symlink de escape hasta la ruta objetivo como root.

Uso

Para añadir/reemplazar authorized_keys para el usuario root

Crear clave SSH en /tmp

root@kitploit:~
ssh-keygen -t ed25519 -f /tmp/key -N ""

Crear el archivo evil.tar

root@kitploit:~
python3 CVE-2025-4138_tarfile_filter_bypass.py \
    -o evil.tar \
    -t /root/.ssh/authorized_keys \
    -p /tmp/key.pub \
    -m 0600
FlagDescripción

Referencias

  • NVD — CVE-2025-4138
  • GHSA-hgqp-3mmf-7h8f

Solo para pruebas de seguridad autorizadas y uso en CTF.

Descargar herramienta
-o
Ruta del tar de salida
-tRuta absoluta del archivo a escribir en el objetivo
-pArchivo local que se usará como contenido del payload
-mPermisos de archivo en octal (por defecto: 0644)