
Exploit de prova de conceito para CVE-2025-51482, demonstrando execução remota de código através do uso inseguro de exec() e bypass de sandbox no framework Letta AI agent. Inclui análise de vulnerabilidade e script de exploração.
Problema: O sistema não realiza nenhuma verificação de segurança no código-fonte fornecido pelo usuário.
Evidência:
O método generate_execution_script insere diretamente o código do usuário no script de execução:
code += "\n" + self.tool.source_code + "\n"
Não há análise AST para detectar operações perigosas (como os.system, subprocess.call, eval, etc.)
Não há restrições de importação ou lista de permissões de módulos
Problema: Uso direto de exec() para executar código do usuário, com o dicionário global contendo variáveis de ambiente.
Evidência:
globals_dict = *dict*(env) # Variáveis de ambiente expostas diretamente ao código do usuário
exec(code_obj, globals_dict)
Problema: Todas as variáveis de ambiente são expostas ao código do usuário, incluindo informações sensíveis.
Evidência:
env = os.environ.copy() # Copia todas as variáveis de ambiente do sistema
env_vars = self.sandbox_config_manager.get_sandbox_env_vars_as_dict(...)
env.update(env_vars) # Adiciona variáveis de ambiente da sandbox
Problema: O mecanismo privileged_tools pode ser contornado.
Evidência:
if tool_settings.e2b_api_key and not self.privileged_tools:
# Usa sandbox e2b (relativamente segura)
else:
# Usa sandbox local (insegura)
Se a organização definiu privileged_tools=True ou não configurou a chave de API e2b, o sistema recai para execução local insegura.
Problema: Nenhuma validação ou limpeza é realizada no código-fonte inserido pelo usuário.
Evidência: O modo ToolRunFromSource aceita qualquer string como código-fonte:
source_code: *str* = Field(..., *description*="The source code of the function.")
Exemplo:
python RCE.py -u http://192.168.63.131:8283/
[+] Comando executado com sucesso:
uid=0(root) gid=0(root) groups=0(root)
python RCE.py -u http://192.168.63.131:8283/ -c whoami
[+] Comando executado com sucesso:
root