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
Herramientas/GitHubGitHub/khashayarnzk/cve-2025-10952-ml-logger-afr
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de Penetración
GitHubkhashayarnzk/cve-2025-10952-ml-logger-afr

CVE-2025-10952-ml-logger-AFR

PoC para CVE-2025-10952 — lectura arbitraria de archivos no autenticada en ml-logger. CVSS 5.3

Ver Repositorio
hace 9h 47mAú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-10952 — Lectura arbitraria de archivos en stream_handler de ml-logger

Este repositorio proporciona un script Python independiente — CVE-2025-10952.py — que explota una vulnerabilidad de lectura arbitraria de archivos sin autenticación en stream_handler de ml-logger, encadenada con el endpoint /glob para la enumeración del sistema de archivos.

Cuando se ejecuta contra una instancia vulnerable de ml-logger, el script:

  • Enumera archivos en el host objetivo a través del endpoint /glob (sin autenticación, sin restricción de rutas fuera del alcance previsto).
  • Lee un archivo arbitrario a través del endpoint /stream suministrando un parámetro manipulado que rompe la lógica de unión de la ruta base del handler.
key
  • Opcionalmente guarda el archivo recuperado en disco para su uso posterior (por ejemplo, una clave privada SSH exfiltrada).
  • Debido a que stream_handler pasa el campo key suministrado por el cliente directamente a una resolución de ruta de archivo y a una llamada de streaming sin comprobación de contención, un atacante de red sin autenticación puede leer cualquier archivo accesible para el usuario del sistema operativo del servicio.

    Detalles de la vulnerabilidad (CVE-2025-10952)

    • Componente: ml_logger/server.py — stream_handler (File Handler)
    • Debilidad: CWE-200 (Exposición de información sensible a un actor no autorizado), CWE-284 (Control de acceso inadecuado)
    • CVSS 3.1: 5.3 (Media) — AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
    • Versiones afectadas: geyang/ml-logger, todas las versiones hasta el commit acf255bade5be6ad88d90735c8367b28cbe3a743 (proyecto de lanzamiento continuo; no se publicó una versión corregida en el momento de la divulgación)
    • Acceso requerido: Ninguno (sin autenticación)

    stream_handler acepta un cuerpo JSON que contiene un campo key y lo pasa directamente a una llamada de lectura de archivo sin saneamiento de rutas. El endpoint hermano glob_handler implementa restricciones parciales de rutas (bloqueando rutas absolutas y traversal), pero stream_handler no comparte esa validación — una barra inicial duplicada en key (por ejemplo, //root/.ssh/id_rsa) es suficiente para salir del directorio base previsto.

    Requisitos previos

    • Python 3.8+
    • Acceso de red a una instancia vulnerable de la API de ml-logger
    • No se requieren credenciales de ningún tipo

    Configuración e instalación

    root@kitploit:~
    git clone https://github.com/Khashayarnzk/CVE-2025-10952-ml-logger-AFR.git
    cd CVE-2025-10952-ml-logger-AFR
    pip install -r requirements.txt
    

    Uso

    Enumerar archivos:

    root@kitploit:~
    python3 CVE-2025-10952.py --target TARGET --port 8081 --glob "/etc/*"
    

    Leer un archivo arbitrario:

    root@kitploit:~
    python3 CVE-2025-10952.py --target TARGET --port 8081 --read "//root/.ssh/id_rsa"
    

    Leer y guardar en disco:

    root@kitploit:~
    python3 CVE-2025-10952.py --target TARGET --port 8081 --read "//root/.ssh/id_rsa" --out id_rsa_root
    chmod 600 id_rsa_root
    ssh -i id_rsa_root -o StrictHostKeyChecking=no root@TARGET
    

    --port tiene como valor predeterminado 8081, el puerto predeterminado para la API de file-broker de ml-logger en una implementación estándar. El frontend del panel de control normalmente se sirve en un puerto separado y no forma parte de la ruta vulnerable.

    Flujo de explotación

    1. Confirmar que el endpoint /glob del objetivo responde 405 Method Not Allowed con Allow: POST — esto identifica el puerto de la API frente al frontend estático del panel de control.
    2. Enumerar rutas accesibles con --glob para mapear archivos interesantes (claves SSH, configuraciones, almacenes de credenciales).
    3. Recuperar un archivo objetivo con --read, usando una barra inicial duplicada para rutas absolutas.
    4. Si el archivo es una clave privada, usarla directamente para la autenticación (ver Uso más arriba).

    Detección y mitigación

    • Red: Alertar sobre campos JSON de estilo key/path que contengan .., barras iniciales duplicadas (//) o prefijos de ruta absoluta (/etc, /root, /proc) dirigidos a los puertos del servicio ml-logger.
    • Host: El monitoreo de integridad de archivos o de acceso en ~/.ssh/, /etc/shadow, /etc/passwd debería marcar lecturas originadas desde la identidad del proceso ml-logger.
    • Exposición: Nunca exponga ml-logger a una red no confiable sin un proxy inverso autenticado delante de él.
    • Remediación: Aplicar contención de rutas (resolución de os.path.realpath() verificada contra un directorio base en lista blanca) en stream_handler; ejecutar el servicio bajo una cuenta de sistema dedicada y sin privilegios.

    Referencias

    • NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-10952
    • Aviso de GitHub: https://github.com/advisories/GHSA-9x36-c74v-fgr6
    • Informe original: https://github.com/geyang/ml-logger/issues/74
    • Proyecto: https://github.com/geyang/ml-logger

    ⚠️ Aviso legal

    Este repositorio contiene un exploit de prueba de concepto para CVE-2025-10952, una vulnerabilidad de divulgación de información sin autenticación en ml-logger. Use este código solo en entornos que le pertenezcan o para los que tenga autorización explícita de prueba. El autor no es responsable de ningún uso indebido o daño causado por este software.

    Licencia

    Consulte LICENSE.

    Descargar herramienta