Geri qayıt
Tədqiqatçı Google tərtibatçı saytlarında uzaqdan kod icrası zəifliyi üçün 90 000 dollar aldı
SiTech AI Team2 dəq oxu

Tədqiqatçı Google tərtibatçı saytlarında uzaqdan kod icrası zəifliyi üçün 90 000 dollar aldı

Tədqiqatçı Google DevSite platformasının OAuth məxfi məlumatlarını Flask sessiya cookie-lərində saxladığını və həm də imzalama üçün eyni açardan istifadə etdiyini aşkar etdi; bu, saxta cookie-lərlə icazəsiz uzaqdan kod icrasına səbəb olur.

Sessiya kukilərində gizlədilmiş OAuth məxfi məlumatları

Təhlükəsizlik tədqiqatçısı Simon Koeck Google-ın tərtibatçı sənədləri saytlarında ümumi OAuth axının həssas məxfi məlumatları birbaşa Flask sessiya kukilərində saxladığını aşkar etdi. developers.google.com üzərində /oauth2authorize ünvanına daxil olarkən imzalı, lakin şifrələnməmiş sessiya kuki yaradılır; bu, kuki sahibinin onun məzmununu deşifr edə biləcəyi deməkdir.

Koeck kuki daxilində pickle ilə serializasiya edilmiş oauth2client.client.OAuth2WebServerFlow obyektini tapdı; orada cari Google OAuth client_id və client_secret açıq mətn şəklində idi. Daha kritik olanı isə həmin client secret-in eyni zamanda Flask SECRET_KEY olduğu idi; bu açar öz kukiləri imzalamaq üçün istifadə olunurdu. O, bunu imzani offline yenidən hesablamaqla təsdiqlədi: HMAC və cookie-session açarı istifadə edərək verilmiş kukidəki imzayla bayt cəhədən identik nəticə əldə etdi.

Saxta kukidən uzaqdan kod icrasına

İmza açarı bərpa edildikdən sonra Koeck serverin qəbul etdiyi ixtiyari sessiya kukiləri yarada bilərdi. OAuth callback-i sessiyadan flow obyektini geri oxuyur və pickle.loads-a ötürür; unpickling zamanı bu, REDUCE opkodu ilə kod icra edir.

Google-ın istehsal sistemlərində əmrləri işə salmaq əvəzinə Koeck zəifliyi vaxtla təsdiqlədi. time.sleep(N)-ə qədər azalan payload seçilmiş dəyərə uyğun cavab gecikmələri yaradırdı: sleep(0) üçün 0,207 saniyə, sleep(3) üçün 3,193, sleep(5) üçün 5,194 və sleep(8) üçün 8,283. Nəzarət testləri bu davranışı təsdiqlədi: kuki olmaması, imzada dəyişən bayt və ya flow qeydinin olmaması bütün hallarda „Invalid request“ mesajı qaytarırdı, halbuki sleep payload-ı cavabı dəqiq tələb olunan qədər gecikdirirdi.

Təsir və mükafat

Zəiflik ümumi DevSite platformasına təsir edirdi, ona görə də bərpa edilmiş açar firebase.google.com, developer.android.com, source.android.com və docs.partner.android.com üzərində etibarlı sessiyaları imzalaya bilərdi. Google hesabı qəbul etdi və 90 000 dollar mükafat verdi; bu, adi Google Applications RCE üçün 75 000 dollarlık baza məbləğinin hesabın xüsusi keyfiyyət üçün 1,2-ə vurulması hesab edilir. Hesab 2026-cı ilin 6 avqustunda təqdim edildi, 7 avqustunda yoxlanıldı və qəbul edildi, isə düzəldildi 2026-cı ilin 7 oktyabrında.

Düzəliş

Google dörd təbəqəli dəyişiklik etdi: hər iki açıq edilmiş OAuth client sırrini dəyişdi və onlarla imzalanmış sessiyaları etibarsız etdi; hər bir yerləşdirməyə server tərəfindəki, OAuth məlumatları ilə əlaqəli olmayan saxlayıcıdan yüksək entropiyalı Flask SECRET_KEY verildi; OAuth flow obyektı serverdə qaldı, kukilərdə isə yalnız şifrələnmiş işarə saxlanıldı; pickle isə şeması ilə yoxlanan yalnız məlumat formatına keçirildi, bu da client sərhədini kəsir. Hər hansı bir dəyişiklik hücum zəncirini qırmağa kifayət edirdi.

Mənbələr: simonkoeck.com

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.