Reasignación cruzada de agente en workspaces de Coder mediante ID de aplicación controlado por el atacante
Se ha identificado una vulnerabilidad en la plataforma Coder que permite a un usuario con acceso elevado redirigir el tráfico de aplicaciones pertenecientes al workspace de otra persona hacia su propio agente, comprometiendo sesiones de IDE y terminal de la víctima.
Descripción técnica
La función UpsertWorkspaceApp sobreescribe el campo agent_id de una aplicación existente cuando se produce un conflicto de clave primaria. A su vez, insertAgentApp acepta el ID de aplicación proveniente del payload CompleteJob del proveedor sin verificar que dicho ID pertenezca al workspace que está siendo construido.
Dado que CompleteJob se ejecuta bajo el contexto de autorización dbauthz.AsProvisionerd, la capa de autorización no bloquea la operación de upsert entre workspaces distintos. Esto significa que el control de acceso existente no contempla este vector de ataque cruzado.
Impacto
Un usuario con autoría de plantillas o acceso como operador de proveedor externo puede enviar un payload CompleteJob que contenga el UUID de una aplicación víctima conocida junto con un ID de agente bajo su control. Al completarse la construcción del workspace del atacante, la fila correspondiente a la app de la víctima queda vinculada al agente del atacante.
Como consecuencia, el tráfico posterior hacia esa aplicación, incluyendo sesiones de IDE y terminales, es enrutado a través del workspace del atacante, lo que equivale a un secuestro de sesión de trabajo remoto.
Los UUIDs de las aplicaciones son descubribles a través de la API pública, lo que reduce la barrera de explotación para un atacante que ya disponga del acceso previo requerido.
Nota: La explotación requiere acceso elevado como autor de plantilla u operador de proveedor externo.
Versiones afectadas y parches
La corrección verifica que cualquier fila existente en workspace_apps que coincida con el ID suministrado pertenezca al workspace en construcción, rechazando cualquier reasignación de agente entre workspaces distintos.
El parche ha sido retroportado a todas las líneas de versión con soporte activo:
| Línea de versión | Versión parcheada |
|---|---|
| 2.34 | v2.34.2 |
| 2.33 | v2.33.8 |
| 2.32 | v2.32.7 |
| 2.29 (ESR) | v2.29.17 |
Mitigaciones
No existe ninguna mitigación alternativa. La actualización a una versión parcheada es obligatoria.
Créditos
Coder agradece al equipo de seguridad de Anthropic (referencia interna ANT-2026-22441) por la divulgación independiente y responsable de esta vulnerabilidad.
