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:

bash
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:

bash
--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.