
VSCode hatasıyla tek tıkla GitHub token'ı çalma
Bir güvenlik araştırmacısı, tek bir bağlantı tıklamasıyla kurbanın özel depoları dahil tüm GitHub depolarına okuma-yazma yetkisi veren token'ı çalan bir saldırıyı belgeledi; Microsoft 3 Haziran'da yamaları yayımladı.
Bir güvenlik araştırmacısı, Visual Studio Code'un web sürümündeki bir hata üzerinden tek bir tıklamayla GitHub erişim token'ının çalınabildiğini belgeledi; söz konusu token, kurbanın özel depoları dahil tüm depolarında okuma ve yazma yetkisi veriyor. Yazı 2 Haziran'da araştırmacının blogunda ve VSCode hata takip sisteminde yayımlandı.
Korumalı alandaki hata
Hedef, GitHub'ın tarayıcı tabanlı editörü github.dev: orada herhangi bir depoyu açmak, github.com'un github.dev'e gönderdiği OAuth token'ını web uygulamasına veriyor. Bu token açtığınız depoyla sınırlı değil; oturum açan kullanıcının erişebildiği diğer tüm depolara erişim sağlıyor. VSCode normalde webview'leri içinde çalışan kodu — Markdown önizlemeleri, Jupyter defterleri — ana editörden yalıtılmış, farklı kaynaklı bir iframe içinde tutar. Hata şu: webview'ler klavye olaylarını VSCode'un mesajlaşma API'si üzerinden üst pencereye iletiyor; böylece güvenilmeyen bir webview içindeki betik, editörün kullanıcıdan gelmiş gibi algıladığı tuş basımlarını taklit edebiliyor.
Defter hücresinden çalınan token'a
Kanıt kavramı için yalnızca bir Jupyter defteri ve bir "yerel çalışma alanı uzantısı" içeren bir depo yeterli. Görsel etiketinin onerror işleyicisiyle JavaScript çalıştıran bir Markdown hücresi zinciri başlatıyor: betik, VSCode'un önerilen uzantılar bildirimini bekliyor, birincil eylemini onaylamak için Ctrl+Shift+A gönderiyor ve yerel uzantıyı kuruyor — bu yol, çalışma alanının kendisi güvenilir sayıldığı için yayıncı güveni kontrolünü atlıyor. Ardından bu uzantı, seçilen bir mağaza uzantısını yayıncı kontrolünü atlayarak kurma komutunu çağıran özel bir tuş ataması ekliyor; kurulan uzantı GitHub token'ını okuyup api.github.com/user/repos adresine sorgu atarak token'ın erişebildiği özel depoları listeliyor. Aynı hata VSCode'un masaüstü sürümünde de var, ancak sömürülmesi daha zor: kurbanın depoyu klonlayıp defteri açması gerekiyor ve bir webview XSS hatasıyla birleştiğinde bu, uzaktan kod çalıştırmaya kadar gidiyor.
Yamalar ve kullanıcı önerileri
Microsoft 3 Haziran'da geçici bir yama yayımladı: web editöründe defter açılırken bir onay adımı eklendi ve komutların yayıncı güvenini atlaması engellendi. Aynı gün, defter webview'lerinden keydown olaylarının dışarı taşmasını durduran daha kapsamlı bir yama geldi. github.dev'i hiç açmamış kullanıcılara çerezlerini ve site verilerini temizlemeleri öneriliyor — ilk oturum açma penceresini geçtikten sonra, araştırmacının belirttiğine göre editörü koruyan hiçbir CSRF token'ı yok, dolayısıyla internetteki herhangi bir bağlantı tarayıcıyı bu saldırıya yönlendirebilir. Yazar ayrıca VSCode'un katmanlı savunmasının — katı içerik güvenliği politikası ve Markdown temizliği — hasarı sınırladığını belirtiyor ve daha önceki bir bildirimin sessizce, kredisiz düzeltilmesinin ardından kamuya açık ifşaat kararını açıklıyor.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.