Sobre cómo gpt-5.6-sol casi borró el directorio home de un usuario por un conflicto con la variable $HOME de PowerShell
(gist.github.com/xamong)Quiero compartir un grave defecto de seguridad (Safety Incident) que acabo de experimentar mientras usaba en Codex el modelo insignia más reciente, gpt-5.6-sol. Aunque el modelo Sol mostró resultados increíblemente sorprendentes en flujos de trabajo de agentes y benchmarks de ejecución de herramientas, la simple falta de aislamiento del entorno de shell estuvo a punto de provocar una catástrofe.
Cómo ocurrió:
El agente estaba intentando configurar un directorio temporal de referencia (baseline) para una tarea de depuración. Para ello, el agente generó y ejecutó un bloque de script de PowerShell que inicializaba una variable local llamada $home.
$home = Join-Path $env:TEMP 'temporary-build-folder'
if (Test-Path -LiteralPath $home) { Remove-Item -LiteralPath $home -Recurse -Force }
Causa del bug:
En PowerShell, $HOME es una variable automática incorporada (built-in, automatic variable) que apunta directamente al directorio de perfil del usuario actual (por ejemplo, C:\Users<username>).
El problema es que PowerShell no distingue entre mayúsculas y minúsculas (case-insensitive). Por eso, la variable $home en minúsculas que el agente declaró dinámicamente entró en conflicto con el ámbito global de $HOME. Cuando el script llegó a la línea de Remove-Item, esa ruta terminó evaluándose no como una carpeta temporal, sino como mi directorio raíz de usuario real.
Como resultado, gpt-5.6-sol ejecutó el siguiente comando:
Remove-Item -LiteralPath 'C:\Users<username>' -Recurse -Force
Daños:
Por suerte, gracias a los bloqueos del sistema (Lock) sobre los archivos actualmente activos, el comando se detuvo durante su ejecución con el error WriteError: Directory is not empty, y se evitó la terrible catástrofe de un borrado total. Sin embargo, el agente detectó de inmediato su error, interrumpió (abort) la tarea y realizó una autoauditoría. Al verificar, algunos archivos de configuración y dotfiles (.ssh, .config, .npm) ya habían sido modificados o habían desaparecido.
Implicaciones:
gpt-5.6-sol es sorprendentemente persistente y competente para realizar tareas de largo alcance (long-horizon tasks). Pero cuando damos a estos modelos avanzados de razonamiento acceso directo al terminal del host, los mecanismos de variables y ámbitos sin distinción de mayúsculas/minúsculas en shells como PowerShell se convierten en un enorme vector de riesgo (risk vector).
Si planean construir o desplegar agentes CLI usando la nueva familia GPT-5.6, el sandboxing estricto y una contenedorización robusta ya no son opcionales: son una necesidad absoluta.
¿Alguno de ustedes ha experimentado comportamientos similares de variable-shadowing o uso destructivo de herramientas al usar Sol u otros modelos recientes?
Este es el enlace a las capturas de pantalla de lo ocurrido: https://gist.github.com/xamong/e98478b333bb9951b175284f744eb0ed
2 comentarios
Por suerte, Codex no hace elevación de privilegios por su cuenta.
Debería resolverlo por su cuenta.