Auditar la ejecución de código de agentes: demostrar el sandbox y rotar secretos
Si el código generado puede heredar variables de entorno de producción, el sandbox es decorativo; verifica la ruta de ejecución y rota las credenciales expuestas.

Un flag de sandbox por defecto no es un límite
Los agentes que ejecutan código generado necesitan un control estricto entre el modelo y la máquina. El control es la ruta de ejecución, el entorno del proceso hijo y los permisos a los que el hijo puede acceder.
PraisonAI, un paquete de agentes, tiene una función CodeAgent._execute_python() que ejecuta Python generado por LLM en un subproceso con el entorno completo del proceso padre. En el código vulnerable, la configuración sandbox=True de CodeConfig no se aplica porque _execute_python no comprueba ese campo. El subproceso recibe variables de entorno que incluyen OPENAI_API_KEY, DATABASE_URL y credenciales de AWS. El resultado es una ruta directa desde el código generado hasta los secretos de producción.
El problema se asignó el CVE-2026-61447 y se clasificó como crítico con una puntuación CVSS de 10.0. Las versiones del paquete praisonaiagents de PraisonAI hasta la 1.6.77 están afectadas, y la 1.6.78 es la versión corregida. Si tu stack ejecuta una versión afectada, pregúntate si el proceso hijo podría leer tus credenciales.
Cinco pasos para demostrar que el sandbox es real
Usa esta lista de verificación para cualquier agente que pueda ejecutar código generado por el modelo. Cada paso es testeable en un minuto si tienes acceso a staging y una forma de inspeccionar el proceso hijo.
- Identifica el punto de entrada del código generado. Encuentra la función que pasa la salida del modelo a un intérprete o shell. Traza la llamada desde el prompt hasta la ejecución.
- Confirma que el flag de sandbox se comprueba en la ruta de ejecución. Un valor por defecto en un objeto de configuración no hace nada si el ejecutor lo ignora. Busca la rama que cambia el aislamiento, el acceso a la red o el acceso a archivos.
- Inspecciona el entorno del subproceso. Inicia el hijo en staging y volca su entorno. Compáralo con el del padre. Cualquier credencial de producción en ese volcado es una fuga.
- Restringe los secretos al menor privilegio. Mueve las credenciales de producción fuera del proceso del agente. Da al hijo solo los alcances que la tarea necesita y mantén los alcances destructivos fuera de su alcance.
- Rota cualquier secreto que fuera visible para el proceso. Trata cada variable de entorno que el hijo pudiera leer como expuesta. Rota antes de terminar la auditoría, no después del postmortem.
El primer paso es importante porque el código generado puede llegar por muchas rutas: una llamada a una herramienta, una escritura de archivo, una celda de notebook o una llamada directa al intérprete. Si no puedes nombrar el punto de entrada, no puedes demostrar que el sandbox se aplica.
El segundo paso detecta el patrón en la ruta de código de PraisonAI. Un campo llamado sandbox puede tener true por defecto mientras la función de ejecución nunca lo lee. El flag solo es real cuando el ejecutor lo aplica.
El tercer paso es la forma más rápida de ver la exposición real. Las variables de entorno son el canal de herencia por defecto para los procesos hijos. Si el hijo puede leerlas, el modelo puede exfiltrarlas a través del código generado.
El cuarto paso sigue el LLM Top 10 de OWASP 2026: los permisos, herramientas y autonomía mínimos deben configurarse fuera del modelo.
El quinto paso es la parte que los operadores omiten. Un secreto que fue visible para un proceso comprometido está expuesto. Rota la credencial antes de la próxima ejecución del agente.
Los secretos visibles son secretos expuestos
El Top 10 de OWASP 2026 para Aplicaciones LLM clasificó la divulgación de información sensible como la segunda amenaza con mayor puntuación por segundo año consecutivo. La misma guía sitúa las claves API en las definiciones de herramientas entre el contexto oculto que debe mantenerse alejado de usuarios y atacantes. Se recomienda el sandboxing para limitar lo que un modelo puede alcanzar en redes, servicios internos y APIs.
La agencia excesiva subió del sexto al tercer puesto en la lista de 2026, cubriendo funcionalidad, permisos y autonomía excesivos. Esa clasificación coincide con el modo de fallo aquí: un agente con ejecución de código y credenciales heredadas puede causar más daño que un chatbot que solo responde preguntas.
OWASP enmarca la seguridad como control de daños: el sistema alrededor del modelo debe prevenir daños importantes cuando el modelo es engañado. Un flag de sandbox que nunca se comprueba no limita el daño. Deja el entorno de producción dentro del proceso hijo.
Si el proceso hijo podía leer OPENAI_API_KEY, DATABASE_URL o credenciales de AWS, rótalos ahora. Si la versión es inferior a la 1.6.78, actualiza y vuelve a ejecutar la auditoría. Si el flag de sandbox no se comprueba en la ruta de ejecución, trata el flag como false y aísla el ejecutor.
La auditoría demuestra que la máquina es segura cuando el modelo se equivoca. El código generado es una capacidad. El entorno es el control. Rota la credencial, corrige el ejecutor y vuelve a ejecutar la auditoría.