PowerShell’deki $HOME değişken çakışması yüzünden gpt-5.6-sol’un kullanıcı ana dizinini neredeyse silmesi üzerine
(gist.github.com/xamong)Codex’te en yeni amiral gemisi model olan gpt-5.6-sol’u kullanırken az önce yaşadığım ciddi bir güvenlik olayını paylaşmak istiyorum. Sol modeli, ajan iş akışları ve araç çalıştırma benchmark’larında inanılması güç derecede etkileyici sonuçlar göstermiş olsa da, basit bir kabuk ortamı yalıtımı eksikliği yüzünden az kalsın büyük bir felakete yol açıyordu.
Olayın gelişimi:
Ajan, hata ayıklama çalışması için geçici bir baseline dizini oluşturmaya çalışıyordu. Bunun için ajan, $home adında yerel bir değişkeni başlatan bir PowerShell betik bloğu oluşturup çalıştırdı.
$home = Join-Path $env:TEMP 'temporary-build-folder'
if (Test-Path -LiteralPath $home) { Remove-Item -LiteralPath $home -Recurse -Force }
Hatanın nedeni:
PowerShell’de $HOME, mevcut kullanıcının profil dizinini (ör. C:\Users\<username>) doğrudan işaret eden yerleşik bir otomatik değişkendir.
Sorun şu ki PowerShell büyük/küçük harf duyarlı değildir. Bu yüzden ajanın dinamik olarak tanımladığı küçük harfli $home değişkeni, genel $HOME kapsamıyla çakıştı. Betik Remove-Item satırına geldiğinde, bu yol geçici klasör yerine benim gerçek kullanıcı kök dizinim olarak değerlendirildi.
Sonuç olarak gpt-5.6-sol şu komutu çalıştırdı:
Remove-Item -LiteralPath 'C:\Users\<username>' -Recurse -Force
Hasarın durumu:
Neyse ki o anda etkin olan dosyalar üzerindeki sistem kilidi sayesinde komut çalışırken WriteError: Directory is not empty hatası verip durdu ve her şeyin silinmesi gibi korkunç bir felaket önlenmiş oldu. Ancak ajan hemen kendi hatasını fark etti, işlemi durdurdu ve kendi kendine denetim yaptı. İnceleme sonucunda bazı yapılandırma dosyalarının ve dotfile’ların (.ssh, .config, .npm) zaten değiştirilmiş veya silinmiş olduğu görüldü.
Çıkarım:
gpt-5.6-sol, uzun soluklu görevleri yerine getirmede şaşırtıcı derecede ısrarcı ve yetenekli. Ancak bu tür gelişmiş akıl yürütme modellerine ana makinedeki terminale doğrudan erişim yetkisi verdiğimizde, PowerShell gibi kabuklardaki büyük/küçük harf duyarsızlığı ve değişken kapsamı mekanizmaları çok büyük bir risk vektörü haline geliyor.
Yeni GPT-5.6 ailesini kullanarak CLI ajanları geliştirmeyi veya dağıtmayı planlıyorsanız, sıkı sandboxing ve sağlam containerization artık bir seçenek değil, mutlak bir zorunluluktur.
Aranızda Sol ya da yakın dönemdeki başka modelleri kullanırken benzer değişken gölgeleme veya yıkıcı araç kullanımı davranışları yaşayan oldu mu?
O anın ekran görüntüsü bağlantısı: https://gist.github.com/xamong/e98478b333bb9951b175284f744eb0ed
2 yorum
codex'in kendi başına yetki yükseltmemesi iyi olmuş.
Kendi kendine halletmesi lazım