
VSCode səhvi ilə bir kliklə GitHub tokeninin oğurlanması
Təhlükəsizlik tədqiqatçısı bir kliklə qurbanın özəl repoları daxil bütün GitHub repolarına oxuma-yazma hüququ verən tokenin oğurlandığı hücumu sənədləşdirib; Microsoft düzəlişləri iyunun 3-də buraxıb.
Təhlükəsizlik tədqiqatçısı Visual Studio Code-un veb versiyasındakı səhvdən istifadə edərək bir kliklə GitHub giriş tokeninin oğurlana biləcəyini sənədləşdirib; həmin token qurbanın özəl repoları daxil bütün repolarında oxuma və yazma hüququ verir. Yazı iyunun 2-də tədqiqatçının bloqunda və VSCode-un problem izləyicisində dərc olunub.
İzolyasiyadakı səhv
Hədəf GitHub-ın brauzer əsaslı redaktoru github.dev-dir: orada hər hansı reponu açmaq veb tətbiqə github.com-un github.dev-ə göndərdiyi OAuth tokenini verir. Bu token açdığınız repoya məhdudlaşmır, yəni daxil olmuş istifadəçinin çıxışı olan bütün digər repolara giriş imkanı yaradır. VSCode adətən webview-lərində işləyən kodu — Markdown önizləmələri, Jupyter dəftərləri — əsas redaktordan təcrid olunmuş, fərqli mənşəli iframe-də saxlayır. Səhv ondadır ki, webview-lər klaviatura hadisələrini VSCode-un mesajlaşma API-si vasitəsilə valideyn pəncərəyə ötürür; beləliklə, etibarsız webview daxilində işləyən skript redaktorun istifadəçidən gəldiyini düşündüyü düymə basmalarını təqlid edə bilir.
Dəftər xanasından oğurlanmış tokenə
Nümunə üçün yalnız Jupyter dəftəri və "yerli iş sahəsi uzantısı" olan bir repo kifayətdir. Şəkil teqinin onerror işləyicisi ilə JavaScript işlədən Markdown xanası zənciri başladır: skript VSCode-un tövsiyə olunan uzantılar bildirişini gözləyir, onun əsas əməliyyatını təsdiqləmək üçün Ctrl+Shift+A göndərir və yerli uzantını quraşdırır — bu yol, iş sahəsinin özü etibarlı sayıldığı üçün nəşriyyat etimadı yoxlamasını keçir. Sonra həmin uzantı öz düymə birləşməsini əlavə edir və bu birləşmə seçilmiş mağaza uzantısını nəşriyyat yoxlamasını atlayaraq quraşdırma əmrini çağırır; quraşdırılan uzantı GitHub tokenini oxuyur və api.github.com/user/repos ünvanına sorğu göndərərək tokenin çıxışı olan özəl repoları göstərir. Eyni səhv VSCode-un masaüstü versiyasında da mövcuddur, lakin istifadə etmək daha çətindir: qurban reponu klonlayıb dəftəri açmalıdır və webview-də XSS səhvi ilə birləşdikdə bu, artıq uzaqdan kod icrası deməkdir.
Düzəlişlər və tövsiyələr
Microsoft iyunun 3-də müvəqqəti düzəliş buraxdı: veb redaktorda dəftər açılarkən təsdiq addımı əlavə edildi və əmrlərin nəşriyyat etimadını atlamasına imkan verilmədi. Həmin gün dəftər webview-lərindən keydown hadisələrinin yayılmasını dayandıran daha tam düzəliş dərc olundu. github.dev-i heç vaxt açmamış istifadəçilərə onun cookie və sayt məlumatlarını silmələri tövsiyə olunur — ilkin giriş pəncərəsini keçdikdən sonra, tədqiqatçının qeyd etdiyi kimi, redaktoru qoruyan heç bir CSRF tokeni yoxdur, buna görə internetdəki hər hansı keçid brauzeri bu hücuma yönləndirə bilər. Müəllif həmçinin VSCode-un çoxqatlı müdafiəsinin — ciddi məzmun təhlükəsizliyi siyasəti və Markdown təmizlənməsi — ziyanı məhdudlaşdırdığını vurğulayır və əvvəlki bildirişin səssizcə, kreditsiz düzəldilməsindən sonra açıq ifşa qərarını izah edir.
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.