Geri Dön
Araştırmacı, Google'ın geliştirici sitelerinde uzaktan kod çalıştırma açığı için 90 000 dolar ödül aldı
SiTech AI Team2 dk okuma

Araştırmacı, Google'ın geliştirici sitelerinde uzaktan kod çalıştırma açığı için 90 000 dolar ödül aldı

Araştırmacı, Google'ın DevSite platformunun OAuth sırlarını Flask oturum çerezlerinde sakladığını ve aynı anahtarın imzalama için kullanıldığını, sahte çerezlerle yetkisiz uzaktan kod çalıştırmaya yol açtığını ortaya çıkardı.

Oturum Çerezlerine Gizlenmiş OAuth Sırları

Güvenlik araştırmacısı Simon Koeck, Google'ın geliştirici dokümantasyon sitelerinde genel OAuth akışının hassas sırları doğrudan Flask oturum çerezlerinde tuttuğunu ortaya çıkardı. developers.google.com'da /oauth2authorize adresine erişimde, imzalı ancak şifreli olmayan bir oturum çerezi kullanılıyor; bu, çerezi ele geçiren kişinin içeriğini çözümleyebileceği anlamına geliyor.

Çerez içinde Koeck, pickle ile serileştirilmiş oauth2client.client.OAuth2WebServerFlow nesnesini buldu; bu nesne geçerli Google OAuth client_id ve client_secret değerlerini açık metin olarak içeriyordu. Daha da kritik olan, aynı client_secret'in çerezleri imzalamak için kullanılan Flask SECRET_KEY'i de olmasıydı. Koeck, HMAC ve cookie-session anahtar üretimi kullanarak imzayı yeniden hesapladı ve verilen çerezdeki imzayla bayt bayt aynı sonucu elde ettiğini doğruladı.

Sahte Çerezden Uzaktan Kod Çalıştırmaya

İmza anahtarını ele geçirdikten sonra Koeck, sunucunun geçerli kabul ettiği kendi oturum çerezlerini oluşturabiliyordu. OAuth geri çağrısı, flow nesnesini oturumdan geri pickle.loads'a aktarıyor ve unpickling sırasında REDUCE opcode'i aracılığıyla kod çalıştırılıyordu.

Google'ın üretim sistemlerinde komut çalıştırmak yerine Koeck, açığı zamanlama üzerinden kanıtladı. time.sleep(N)'e kadar azaltılan yük, seçilen değere göre yanıt gecikmeleri üretti: sleep(0) için 0,207 saniye, sleep(3) için 3,193, sleep(5) için 5,194 ve sleep(8) için 8,283. Kontrol testleri bu davranışı doğruladı: çerez yokluğu, değiştirilmiş imza baytı veya flow kaydı yokluğu her durumda "Invalid request" mesajını döndürürken, sleep yükü yanıtı tam olarak istenen miktar kadar geciktiriyordu.

Etki ve Ödül

Açık genel DevSite platformunu etkilediği için ele geçirilen anahtar, firebase.google.com, developer.android.com, source.android.com ve docs.partner.android.com üzerinde geçerli oturumlar oluşturmaya izin veriyordu. Google raporu kabul etti ve 90 000 dolar ödül verdi; bu, standart Google Applications RCE için 75 000 dolar baz tutarının 1,2 ile çarpılmasıyla hesaplanmış ve raporun olağanüstü kalitesi içindi. Rapor 6 Ağustos 2026'da sunuldu, 7 Ağustos'ta doğrulandı ve 7 Ekim 2026'da giderildi.

Düzeltme

Google dört katmanlı bir değişiklik uyguladı: iki açığa yol açan OAuth client sırlarını değiştirdi ve bunlarla imzalanmış tüm oturumları geçersiz kıldı, her dağıtımın OAuth verileriyle ilişkisi olmayan sunucu tarafından yönetilen depolama alanından kendi yüksek entropili Flask SECRET_KEY'ini kullanmasını sağladı, OAuth flow nesnesini sunucuda bıraktı ve çerezlerde yalnızca opak bir referans sakladı, pickle işlemini şema doğrulamalı yalnızca veri formatına dönüştürerek tüm istemci sınırını kesti. Bu değişikliklerden herhangi biri saldırı zincirini kırmaya yetecek düzeydeydi.

Kaynaklar: simonkoeck.com

SSiTech

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.