Oasis Security ha divulgado una debilidad en NVIDIA NemoClaw que podría permitir que una página web controlada por un atacante tome control no autenticado de la instancia local de Ollama que sirve a un agente de IA e inyecte instrucciones ocultas en el propio modelo.
Los hallazgos fueron compartidos con The Hacker News antes de su publicación, y el informe señala que Oasis Security los reportó previamente al Equipo de Respuesta a Incidentes de Seguridad de Productos (PSIRT) de NVIDIA. La investigación no tiene identificador CVE. No se ha reportado explotación hasta el 25 de agosto de 2026.
El jefe de investigación de Oasis Security, Elad Luz, dijo a The Hacker News que NemoClaw v0.0.35 corrigió el problema en macOS y Linux. No hay solución en la ruta de Windows y WSL, según Luz, donde v0.0.34 añadió una instalación para Windows que incluye una advertencia en su lugar.
NemoClaw es el stack de referencia de código abierto de NVIDIA para ejecutar agentes como OpenClaw dentro de sus sandboxes OpenShell, y Ollama es uno de sus backends de inferencia local compatibles.
El informe describe que NemoClaw inicia Ollama con OLLAMA_HOST=0.0.0.0:11434, vinculando el servidor de modelos a todas las interfaces de red, y dice que el acceso API resultante permite a un atacante modificar la plantilla de chat del modelo para que instrucciones ocultas se apliquen en cada conversación posterior.
"El sandboxing protege el endpoint, pero tomar control del agente toma control de su acceso y herramientas", dijo Oasis Security en el informe.
Comportamiento por plataforma
La configuración de Ollama en NemoClaw varía según la plataforma:
- Los hosts no-WSL mantienen Ollama en 127.0.0.1:11434 detrás de un proxy inverso con token en 0.0.0.0:11435, y el onboarding reinicia un daemon ya vinculado a otra interfaz de vuelta al loopback.
- Docker Desktop en WSL omite el proxy, porque el contenedor alcanza la dirección loopback del host a través de host.docker.internal.
- La ruta de Ollama en host Windows establece OLLAMA_HOST=0.0.0.0:11434 para que los contenedores de Docker Desktop puedan alcanzar el daemon, y no requiere autenticación en el puerto 11434.
La página de integración de NemoClaw en Ollama también aconseja establecer OLLAMA_HOST=0.0.0.0 cuando se ejecuta dentro de WSL2 o un contenedor, y vincularlo a 0.0.0.0 ha sido previamente identificado como el cambio que expone instancias de Ollama más allá de la máquina local.
La API en el puerto 11434 no tiene autenticación y depende de dos capas de middleware para bloquear solicitudes originadas desde navegadores. Cuando la dirección de enlace no es loopback, la verificación del encabezado Host se omite por completo. La capa de Cross-Origin Resource Sharing (CORS) trata entonces la solicitud como de mismo origen y la permite, porque los encabezados Origin y Host llevan ambos el dominio del atacante. Eso es válido para una página servida por el atacante en el puerto 11434.
El rebinding de DNS cierra la brecha: el dominio del atacante resuelve primero a su propio servidor y luego a 127.0.0.1 mientras el navegador sigue tratando las solicitudes como de mismo origen.
Luz dijo que la cadena completa fue probada en macOS con Firefox contra una versión vulnerable de NemoClaw. Verificar los encabezados Host y Origin es la solución estándar para esa clase de ataque.
El rebinding de DNS contra la API de Ollama está documentado. Ollama lanzó un parche en v0.1.29 el 14 de marzo de 2024, y NCC Group publicó el aviso como CVE-2024-28224 el mes siguiente. Ese aviso recomendaba validar el encabezado Host en el lado del servidor para permitir solo un conjunto de valores autorizados.
Ollama introdujo esa validación en respuesta a la divulgación de 2024, según Luz.
"Pero Ollama omite esa validación siempre que esté vinculado a una dirección no-loopback, y 0.0.0.0 es exactamente como NemoClaw lo configura", dijo.
Con la API accesible, el payload del informe escribe una plantilla Go modificada a través de /api/create. La plantilla controla cómo se renderiza el array de mensajes estructurados como texto crudo antes de que el modelo lo procese, y la versión envenenada añade texto controlado por el atacante a cada mensaje de sistema en el momento de la inferencia.
Las instrucciones plantadas de esta manera persisten en conversaciones posteriores y sobreviven a que el agente suministre su propio mensaje de sistema, según el informe.
"El cliente no puede detectarlo ni prevenirlo: la plantilla es una propiedad a nivel de modelo invisible para los consumidores de la API", dijo Oasis Security.
The Hacker News revisó el repositorio de NemoClaw en el commit 17f0ca3b el 25 de agosto y encontró que el proxy local de Ollama se niega a iniciarse contra un backend que no esté vinculado a loopback, un default introducido en v0.0.106 el 10 de agosto. El proxy sale con un código de estado dedicado e imprime:
"Rechazando iniciar: un daemon de Ollama alcanzable en una interfaz no-loopback evita por completo la verificación de token del proxy. Establezca OLLAMA_HOST=127.0.0.1:${port} en la unidad systemd de Ollama o establezca NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1 para anular (no recomendado)."
Esa verificación puede desactivarse configurando NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1, y no falla de forma segura en hosts donde la verificación de enlace no puede ejecutarse.
La verificación se ejecuta dentro del propio proxy. NemoClaw no inicia ese proxy en las rutas WSL, y la configuración de host Windows es una de ellas. El default de v0.0.106 por lo tanto no llega a la ruta de plataforma donde se establece el enlace 0.0.0.0.
La misma revisión no encontró ninguna verificación de integridad de la plantilla de chat en ningún lugar del repositorio, con NemoClaw consultando el endpoint /api/show de Ollama solo para la longitud de contexto nativa del modelo y su capacidad declarada de llamada a herramientas.
La documentación de NVIDIA instruye a los operadores en la ruta de host Windows a no exponer el puerto 11434 a una LAN o a Internet. Esa guía aborda el acceso entrante desde la red. La cadena de rebinding no lo necesita, porque el navegador que hace las solicitudes ya se ejecuta en el host y alcanza el daemon en 127.0.0.1.
Envenenar la plantilla de chat de un modelo para que las instrucciones se ejecuten durante la inferencia ha sido documentado antes como plantillas de chat envenenadas. Los investigadores de Oasis Security documentaron la misma técnica contra Paperclip a principios de este mes, y utilizaron una ruta comparable de navegador a localhost para secuestrar agentes locales de OpenClaw en febrero.