Descripción general
Las versiones de Ollama comprendidas entre la 0.14.0 y anteriores a la 0.31.2 contienen una vulnerabilidad de autorización incorrecta en el mecanismo de aprobación de la herramienta Bash del modo agente experimental. El fallo reside en la incapacidad del sistema para analizar correctamente la sintaxis shell, lo que permite a un atacante ejecutar comandos adicionales no autorizados aprovechando operadores de control propios del intérprete de comandos.
Mecanismo de la vulnerabilidad
El modo agente experimental de Ollama incorpora un mecanismo de aprobación por sesión que, en teoría, requiere que el usuario autorice explícitamente la ejecución de comandos Bash antes de que el modelo pueda invocarlos. Sin embargo, el componente encargado de validar dichos comandos no realiza un análisis sintáctico adecuado de la cadena de texto recibida.
Un atacante que sea capaz de influir en la salida del modelo mediante inyección de prompts puede aprovechar esta debilidad añadiendo operadores de control shell al final de un comando previamente aprobado. Entre los operadores explotables se encuentran:
# Uso de punto y coma para encadenar comandos
comando_aprobado; comando_malicioso
# Uso de operador lógico AND
comando_aprobado && comando_malicioso
# Uso de operador lógico OR
comando_aprobado || comando_malicioso
Dado que el sistema de aprobación evalúa únicamente la parte inicial del comando o no interpreta correctamente los delimitadores, el comando malicioso adjunto se ejecuta en el mismo contexto de shell sin requerir una aprobación adicional por parte del usuario.
Vector de ataque
El vector de explotación combina dos técnicas: la inyección de prompts y el abuso de la lógica de autorización defectuosa. El atacante primero manipula la entrada del modelo para que este genere una salida que contenga un comando aprobado seguido de un operador de control y un comando arbitrario. Al no existir un análisis sintáctico robusto en el mecanismo de aprobación, el sistema interpreta el conjunto como un único comando autorizado y procede a su ejecución completa en el entorno shell del sistema anfitrión.
Impacto
La explotación exitosa de esta vulnerabilidad permite la ejecución de comandos shell arbitrarios en el sistema donde Ollama se encuentra en ejecución, eludiendo por completo el requisito de aprobación de sesión diseñado para proteger al usuario. Dependiendo de los privilegios con los que se ejecute el proceso de Ollama, el impacto puede abarcar desde la lectura de ficheros sensibles hasta el compromiso total del sistema anfitrión.
Sistemas afectados
Se ven afectadas todas las instalaciones de Ollama que cumplan las siguientes condiciones:
- Versión igual o superior a la 0.14.0 y anterior a la 0.31.2.
- Modo agente experimental habilitado con la herramienta Bash activa.
- Entorno en el que un tercero pueda influir en la entrada del modelo mediante inyección de prompts.
Recomendaciones
Se recomienda actualizar Ollama a la versión 0.31.2 o superior, en la que el mecanismo de aprobación de la herramienta Bash incorpora un análisis sintáctico correcto de los operadores de control shell. Mientras no sea posible aplicar la actualización, se aconseja deshabilitar el modo agente experimental y restringir el acceso a la API de Ollama a usuarios y procesos de confianza para reducir la superficie de ataque expuesta a la inyección de prompts.
