Sobre o caso em que o gpt-5.6-sol quase apagou o diretório home do usuário por causa de um conflito com a variável $HOME no PowerShell
(gist.github.com/xamong)Durante o uso do Codex com o modelo flagship mais recente, gpt-5.6-sol, quero compartilhar um grave incidente de segurança (Safety Incident) que acabei de vivenciar. Embora o modelo Sol tenha apresentado um desempenho incrivelmente impressionante em benchmarks de workflow de agentes e execução de ferramentas, a simples ausência de isolamento do ambiente de shell quase levou a uma catástrofe.
Como aconteceu:
O agente estava tentando configurar um diretório de baseline temporário para uma tarefa de depuração. Para isso, o agente gerou e executou um bloco de script PowerShell que inicializava uma variável local chamada $home.
$home = Join-Path $env:TEMP 'temporary-build-folder'
if (Test-Path -LiteralPath $home) { Remove-Item -LiteralPath $home -Recurse -Force }
Causa do bug:
No PowerShell, $HOME é uma variável automática embutida que aponta diretamente para o diretório de perfil do usuário atual (por exemplo, C:\Users\<username>).
O problema é que o PowerShell não diferencia maiúsculas de minúsculas (case-insensitive). Por isso, a variável dinâmica em minúsculas $home declarada pelo agente entrou em conflito com o escopo global de $HOME. Quando o script chegou à linha com Remove-Item, esse caminho acabou sendo avaliado não como a pasta temporária, mas como o meu diretório raiz real de usuário.
Como resultado, o gpt-5.6-sol executou o seguinte comando:
Remove-Item -LiteralPath 'C:\Users\<username>' -Recurse -Force
Situação dos danos:
Felizmente, graças ao lock do sistema sobre arquivos que estavam ativos naquele momento, o comando parou no meio da execução emitindo o erro WriteError: Directory is not empty, e assim foi possível evitar a tragédia assustadora de uma exclusão completa. No entanto, o agente detectou imediatamente o próprio erro, abortou a tarefa e realizou uma autoauditoria. Na verificação, alguns arquivos de configuração e dotfiles (.ssh, .config, .npm) já haviam sido modificados ou removidos.
Implicações:
O gpt-5.6-sol é surpreendentemente persistente e competente na execução de tarefas de longo horizonte (long-horizon tasks). Mas, quando damos a esses modelos avançados de raciocínio permissão para acessar diretamente o terminal do host, mecanismos como a falta de distinção entre maiúsculas e minúsculas e o escopo de variáveis em shells como o PowerShell se tornam um enorme vetor de risco (risk vector).
Se você está planejando criar ou implantar agentes CLI usando a nova família GPT-5.6, sandboxing rigoroso e containerização robusta agora não são mais opcionais, e sim absolutamente indispensáveis.
Alguém aqui também passou por algo parecido, como variable shadowing ou comportamento destrutivo no uso de ferramentas, ao usar o Sol ou outros modelos recentes?
Aqui está o link para a captura de tela da situação naquele momento: https://gist.github.com/xamong/e98478b333bb9951b175284f744eb0ed
2 comentários
Ainda bem que o codex não faz elevação de privilégios por conta própria.
Tem que se virar sozinho.