Paylaşılan bir ChatGPT bağlantısı, açan kişinin hesabını ele geçirtebiliyordu; OpenAI açığı kapattı
Parameter’in zinciri MathLive kütüphanesinden ve YouTube üzerinden CSP’yi aşan bir yoldan geçiyordu. Sahada istismar bilinmiyor, kullanıcının bir şey yapması gerekmiyor.
Kaynaklar: Parameter, The Hacker News
Bir bağlantıyla oturumda kod çalıştırma
Güvenlik şirketi Parameter, 28 Ekim’de araştırmacı Mukul Goyal imzalı “Do the Math: How We Took Over ChatGPT Accounts” başlıklı yazıda, sıradan bir herkese açık ChatGPT paylaşımını, açan kişinin oturumunda çalışan saldırgan kontrolündeki JavaScript koduna dönüştürmenin bir yolunu anlattı. Senaryoda saldırgan kötü amaçlı bir sohbet hazırlıyor, ChatGPT’nin normal paylaşma özelliğiyle yayımlıyor ve bağlantıyı e-posta, sohbet, destek talebi ya da sosyal medya üzerinden gönderiyor. Bağlantıyı açan kişinin bir uygulama kurması, bir projeye katılması ya da kod yapıştırması gerekmiyordu.
Parameter, kodun chatgpt.com kimliğiyle ve kurbanın oturum yetkileriyle çalıştığını; kurbanın sohbet listesini çekebildiğini, saldırganla hiç paylaşılmamış özel bir sohbetin içeriğini alabildiğini ve bu içerikten seçilen küçük bir değeri dış bir sunucuya gönderebildiğini doğruladığını yazıyor. Araştırmacılara göre kod ChatGPT’nin kimliği doğrulanmış arayüz API’lerini kurban adına çağırabildiği için hesapta kurbanın yapabildiği işlemleri yapabilirdi; yani hesaplar ele geçirilebilirdi. Parameter kanıtı kendi ayrı hesapları arasında üretti.
Beş adımlı zincir
Zincir, tek başına zararsız görünen iki özellikle başlıyor: etkileşimli bir grafik ve HTML önizlemesi (Preview). ChatGPT, HTML kod bloklarını ayrı bir web adresindeki kısıtlı bir çerçevede çalıştırıyor ve bu yalıtım kendi içinde çalışıyordu.
İlk adımda aynı sohbetteki grafik, MathLive adlı matematik kütüphanesini yüklüyor; MathLive da ana ChatGPT sayfasına sanal klavyesiyle ilgili mesajları dinleyen bir alıcı kuruyor. İkinci adımda kısıtlı önizleme bu alıcıya pencereler arası mesaj (postMessage) gönderiyor. MathLive mesajın hangi adresten ve hangi pencereden geldiğini denetlemiyor, klavye düzeni verisi olarak ham HTML kabul ediyor ve klavyeyi açarken bu HTML’i ana sayfaya yazıyor. Üçüncü adımda bu HTML, ana sayfanın içinde sandbox özelliği olmayan bir çerçeve (iframe) oluşturuyor; çerçeveyi ana sayfa yarattığı için tarayıcı ona chatgpt.com kimliğini veriyor. Dördüncü adımda içerik güvenlik politikası (CSP) aşılıyor: ChatGPT’nin CSP’si satır içi betikleri engelliyor ama YouTube’dan betik yüklemeye izin veriyor. YouTube’un oEmbed uç noktası, geçersiz bir JSONP geri çağrı adını hata mesajından önce yanıtın başına yazdığı için araştırmacılar buradan kendi kodlarını çalıştırabildi. Beşinci adımda çalışan kod, sayfadaki oturum bilgilerini okuyup kurbanın oturumuyla ChatGPT API’lerini çağırıyor.
Parameter’e göre hatayı tam bir istismara dönüştüren üç tasarım kararı vardı: MathLive’ın durum değiştiren bir mesajı göndericiyi doğrulamadan kabul etmesi, mesaj biçiminin klavye düzeni verisi olarak ham HTML taşımaya izin vermesi ve bu HTML’in chatgpt.com kimliğini miras alan, sandbox’sız bir belge oluşturabilmesi. YouTube yanıtı ise kök neden değil, CSP’yi aşmak için kullanılan son geçici yoldu.
İlk çalışan sürüm, araştırmacıların kontrol ettiği bir ChatGPT uygulamasını gerektiriyordu. Grafik ile önizleme aynı herkese açık sohbete konunca zincir tek bir paylaşım bağlantısıyla taşınabilir hale geldi. En kararlı sürümde kurbanın paylaşımı açıp ChatGPT’nin normal “Preview” düğmesine bir kez tıklaması gerekiyordu. HTML bloğu otomatik önizlenecek şekilde ayarlandığında bağlantıyı açmak yetti; Parameter bu otomatik yolu ayrı bir hesapta üç kez yeniden ürettiğini ve kodun yaklaşık 4,5 saniye içinde çalıştığını yazıyor.
Zaman çizelgesi ve düzeltme
Parameter, zincirin ilk halkasını 13 Ekim’de ChatGPT’nin üretimdeki koduna karşı doğruladı; 16 Ekim’de ayrı hesaplar arasında paylaşım bağlantısıyla, 17 Ekim’de otomatik önizlemeyle çalıştığını gördü. Açığı 18 Ekim’de OpenAI’ın hata ödül programına bildirdi, 19 Ekim’de özel sohbet sızdırma kanıtını ekledi. OpenAI 21 Ekim’de sorunu yeniden üretti ve önem derecesini ilk değerlendirmedeki P2’den P1’e yükseltti. Düzeltme ChatGPT’nin iki web arayüzü sürümüne ayrı ayrı yayıldı: 22 Ekim’de biri düzeltildi, 23 Ekim’de CSP değişiklikleri zincirin bir kısmını engelledi, 26 Ekim’de OpenAI iki sürümün de bu MathLive mesajlarını reddettiğini doğrulayıp sorunu kapattı. Araştırmacılar toplam 5.000 dolar ödül aldı.
The Hacker News’ün 31 Ekim tarihli haberine göre açığın gerçek saldırılarda kullanıldığına dair bir bilgi yok. Düzeltme sunucu tarafında yapıldığı için kullanıcıların bir şey yapması gerekmiyor. OpenAI’dan düzeltme ve ödül dışında konuya ilişkin doğrudan bir açıklama bulunmuyor.
Parameter’in çıkardığı derslere göre pencereler arası mesaj alıcıları göndericinin hem adresini hem penceresini doğrulamalı, pencereler arası ayarlar ham HTML içermemeli, güvenilmeyen bir çerçevenin etkileyebildiği belgeler sandbox içinde kalmalı ve CSP tek engel değil yedek bir denetim olarak görülmeli.
Kaynaklar
2 kaynak
- “Do the Math: How We Took Over ChatGPT Accounts”Araştırmacıların kendi yazısı: zincir, zaman çizelgesi, P1 önem derecesi ve 5.000 dolar ödül · parameter.ai
- “A Shared ChatGPT Link Could Run Attacker Code in Your Session and Read Private Chats”İkincil haber; istismar bilgisi yok, kullanıcıların bir şey yapması gerekmiyor · thehackernews.com
Bu haber hakkında
- Hazırlayan
- Yiğit Kasap · JARRUS
- Haber tarihi
- Sitede
- 1 Kasım 2026’dan beri
- Kısa link
thejarrus.com/chatgpt-paylasim-acigi- Hata bildir
- Bu haberde bir hata mı var? [email protected] · Instagram