Ollama es la forma más común de correr modelos locales, y su imagen de Docker suele permitir escribir en el directorio de donde carga componentes. CERT Polska publicó el 8 de octubre una vulnerabilidad que combina ambas cosas: sin autenticación, un atacante puede plantar un archivo y obtener ejecución como root en el siguiente reinicio.
Es una vulnerabilidad de path traversal relativo (CWE-23) en el endpoint /api/pull de Ollama, el que descarga modelos de un registro. Según el aviso de CERT Polska, la función digestToPath no valida adecuadamente el digest de cada capa del modelo. Un atacante remoto sin autenticación puede enviar una secuencia de recorrido de directorios como digest y lograr que un binario malicioso se escriba fuera del almacén de modelos. El reporte lo atribuye a Bartłomiej Dmitruk (striga.ai).
La escritura arbitraria por sí sola no es ejecución de código. El salto ocurre por una condición de despliegue: si el proceso del servidor puede escribir en /usr/lib/ollama —algo que, según CERT Polska, es el caso por defecto en la mayoría de las imágenes de Docker de Ollama— el atacante deja allí su archivo. En el siguiente reinicio del servidor, ese archivo se carga y se ejecuta con privilegios de root. Es decir, el ataque tiene dos tiempos: plantar el archivo ahora, ejecutarlo cuando alguien (o un orquestador) reinicie el contenedor.
El requisito es que la API sea alcanzable desde una red no confiable. Ollama escucha por defecto en el puerto 11434; si está enlazado solo a 127.0.0.1, la exposición es mucho menor. El riesgo real está en las instalaciones donde alguien abrió el servicio a 0.0.0.0 o publicó el puerto de Docker sin restringirlo, por ejemplo en una VM de GPU en la nube para "probar un modelo". Estas instalaciones suelen no tener autenticación, porque Ollama no la incluye de fábrica.
Carlos Montiel es arquitecto de soluciones IA empresarial. Implementa LLMs, Agentes, RAG y orquestadores en empresas de Guatemala y Latinoamérica. Contáctalo para una consultoría.
Contactar a Carlos Montiel