Escape do sandbox JavaScript do Google Cloud Application Integration
Técnicas e Métodos de AtaqueOntem, 12:37
O Google Cloud Application Integration permite que os usuários adicionem tarefas JavaScript aos fluxos de trabalho de integração. As tarefas legadas eram executadas no Rhino, um mecanismo JavaScript baseado em Java, com um verificador de permissões personalizado que restringia o acesso ao ambiente de execução ao redor. Um autor de fluxo de trabalho autorizado combinou permissões que permaneciam disponíveis dentro do sandbox para executar comandos do sistema como a conta de serviço da tarefa.
• Desativando as verificações de thread do Rhino — O conjunto de permissões permitido incluía
ReflectPermission("suppressAccessChecks"), que tornava campos Java privados acessíveis por meio de reflexão. O script abriu o campo estático privado COMMON_PERMISSIONS e adicionou AllPermission e modifyThread. Isso neutralizou as verificações aplicadas à thread Rhino não confiável, embora uma política separada ainda restringisse o acesso a arquivos e processos.• Escapando por meio de uma JVM filha — A política restante permitia gravações em
/tmp e execução de $JAVA_HOME/bin/java. O script salvou uma classe Java compilada em /tmp e a iniciou com java -cp /tmp ExecuteCommands. A JVM filha não foi marcada como uma thread Rhino não confiável, então ela pôde executar comandos do sistema e retornar sua saída por meio de um arquivo e event.log().A exploração exigia permissão para criar e executar tarefas JavaScript e afetava apenas o antigo mecanismo Rhino. O Google rastreia o problema como
CVE-2025-0982; novas tarefas migraram para o V8 em janeiro de 2025, e a execução do Rhino foi totalmente bloqueada em 30 de março de 2026. O resultado demonstrado foi a execução de comandos dentro do ambiente de tarefa gerenciado, não uma fuga para o host subjacente ou o plano de controle do cluster.Vulnerabilidades
Pesquisadores
Fornecedor
Produto