Descripción de la vulnerabilidad
PraisonAI es un sistema de equipos multi-agente de IA. En versiones anteriores a la 4.5.128, el archivo deploy.py construye una cadena delimitada por comas para el argumento --set-env-vars del comando gcloud run deploy, interpolando directamente los valores openai_model, openai_key y openai_base sin validar que dichos valores no contengan comas.
Mecanismo de explotación
La herramienta gcloud utiliza la coma como separador entre pares clave-valor en el argumento --set-env-vars. Si cualquiera de los tres valores mencionados contiene una coma, gcloud interpreta el texto posterior a dicha coma como definiciones adicionales con formato CLAVE=VALOR, lo que permite inyectar variables de entorno arbitrarias en el servicio Cloud Run desplegado.
El flujo vulnerable puede representarse de la siguiente manera:
gcloud run deploy SERVICE \
--set-env-vars OPENAI_MODEL=<valor>,OPENAI_API_KEY=<valor>,OPENAI_BASE=<valor>
Si un atacante logra introducir una coma en alguno de esos valores, por ejemplo en openai_model, el resultado sería:
--set-env-vars OPENAI_MODEL=gpt-4,VARIABLE_INYECTADA=valor_malicioso,OPENAI_API_KEY=...
Esto provoca que gcloud registre VARIABLE_INYECTADA=valor_malicioso como una variable de entorno legítima dentro del servicio Cloud Run desplegado.
Impacto
La explotación exitosa de esta vulnerabilidad permite a un atacante con capacidad para controlar o influir en los valores de configuración (openai_model, openai_key o openai_base) inyectar variables de entorno arbitrarias en el servicio Cloud Run resultante. Esto puede derivar en:
- Sobreescritura de variables de entorno críticas del servicio, como credenciales, endpoints o parámetros de comportamiento.
- Manipulación del comportamiento del servicio desplegado en tiempo de ejecución.
- Posible escalada de privilegios o exfiltración de información sensible dependiendo de las variables afectadas.
Versiones afectadas
Todas las versiones de PraisonAI anteriores a la 4.5.128 están afectadas por esta vulnerabilidad.
Solución
La vulnerabilidad ha sido corregida en la versión 4.5.128 de PraisonAI. Se recomienda actualizar a esta versión o a cualquier versión posterior de forma inmediata. La corrección implica validar que los valores interpolados no contengan comas antes de construir la cadena de argumentos para gcloud.
