Google, developers.google.com ile diğer dokümantasyon sitelerini destekleyen ortak platform DevSite'te belgelenmemiş bir uzaktan komut yürütme açığı keşfeden güvenlik araştırmacısı Simon Köck'e 90 bin dolar ödül verdi. Köck sorunu 6 Ağustos'ta bildirdi, Google ertesi gün raporu kabul etti ve ödülü 27 Ağustos'ta onayladı; ancak düzeltme sunuculara 7 Ekim'de ulaştı.
Google açığı, kendi önem derecesi ölçeğindeki en yüksek seviye olan S0 olarak sınıflandırdı ve Köck'e normal uygulama katmanında bir RCE açığı için temel olarak 75 bin dolar verdi. Olağanüstü rapor kalitesi nedeniyle bu tutara yüzde 20 artış uygulandı.
Üç hata istismar zincirini oluşturdu
DevSite, kullanımdan kaldırılmış oauth2client kütüphanesindeki serileştirilmiş bir OAuth2WebServerFlow nesnesini Flask oturum çerezinde saklıyordu. Bu durum OAuth istemci sırrını açığa çıkardı; ancak aynı sırrın Flask oturumlarını imzalamak için de anahtar olarak kullanılması sorunu daha tehlikeli hâle getirdi.
Köck, çerez imzalarını yerel olarak yeniden oluşturmayı ve sunucunun kabul ettiği sahte oturumlar oluşturmayı başardı. OAuth akışı oturum verilerinin serisini kaldırmak için pickle kullandığından, nesneyi imzalı kötü amaçlı bir pickle yüküyle değiştirdi ve ardından uzaktan Python kodu çalıştırıldığını kanıtladı.
Araştırmacı, sleep komutuyla yanıtı geciktiren ve gerçek komutları çalıştırmadan ya da dosyalara, kimlik bilgilerine veya dahili hizmetlere erişmeden önce kasıtlı olarak duran bir yük kullanarak çalıştırmayı doğruladı. Kendi anlatımına göre sahte oturumlar etkilenen yedi alan adının tamamında kabul edildi; kavram kanıtlama testi ise developers.google.com, docs.partner.android.com ve web.dev olmak üzere üç alan adında gerçekleştirildi.
Etkinin kapsamı tam olarak belirlenmedi
Köck, sunucunun Google dokümantasyon içeriğini değiştirebildiğini veya kurulum komutlarıyla indirme bağlantılarını değiştirebildiğini kanıtlamadı. Böyle bir senaryo, yazılım tedarik zincirine yönelik bir saldırının önünü açabilirdi. Ayrıca sahte oturumların kullanıcı taklidine veya kullanıcı verilerine erişime izin verip vermediğini de test etmedi.
@brutecat adıyla tanınan araştırmacı Arvin Shivram, dahili App Engine uygulamalarının genellikle Google'ın hizmetler arası dahili iletişim sistemi Stubby'ye erişebildiğine dikkat çekti. Köck, bu işlem için böyle bir erişim mevcutsa etkinin büyük ölçüde genişleyebileceğini söyledi; ancak DevSite'in izinlerini veya arka uç hizmetlerine erişim kapsamını doğrulamadı.
Bu haber neden önemli?
Bu durum, riskin tek bir hatadan değil, üç uygulamanın bir araya gelmesinden kaynaklandığını gösteriyor: hassas bir sırrın çerez içinde açığa çıkarılması, bu sırrın imzalama anahtarı olarak yeniden kullanılması ve güvenilmeyen verilerin serisini kaldırmak için güvensiz bir yöntem kullanılması. Zincirin herhangi bir halkasının düzeltilmesi istismar yolunu kesmeye yeterli olabilirdi. Bu da sırların ayrıştırılmasını ve oturum verilerinde pickle kullanımının reddedilmesini isteğe bağlı iyileştirmeler değil, temel kontroller hâline getiriyor.
Buna karşılık, yaklaşık iki ay süren düzeltme süresi Google'ın yanıtlamadığı operasyonel soruları gündeme getiriyor. Şirket, geçici azaltma önlemleri uygulayıp uygulamadığını, Köck'in yedi alan adının kullandığını söylediği iki farklı imzalama anahtarını değiştirip değiştirmediğini veya mevcut oturumları geçersiz kılıp kılmadığını açıklamadı. Ayrıca düzeltme yayımlanmadan önce açığın istismar edilmiş olasılığına ilişkin adli bir soruşturmanın sonucunu açıklamadı ve The New Stack'in yorum talebine materyal güncellendiğinde henüz yanıt vermemişti.