CVE-2023-41896
Təsvir
Home Assistant açıq mənbəli ev avtomatlaşdırma sistemidir. Frontend kodunun gizli parametrləri müəyyən etmək üçün yoxlanılması zamanı Cure53 tərəfindən `state` parametri ilə birlikdə WebSocket autentifikasiya məntiqi tərəfindən istifadə edilən `auth_callback=1` parametri aşkar edilmişdir. State parametri sonradan WebSocket bağlantısını qurmaq üçün istifadə olunan `hassUrl`-i ehtiva edir. Bu davranış hücumçuya dəyişdirilmiş state parametri olan zərərli Home Assistant linki yaratmağa imkan verir ki, bu da frontend-i alternativ WebSocket backend-inə qoşulmağa məcbur edir. Beləliklə, hücumçu hər hansı WebSocket cavablarını saxtalaşa və saytlararası skriptinq (XSS) tetikləyə bilər. XSS əsl Home Assistant frontend domenində icra edildiyi üçün o, real Home Assistant backend-inə qoşula bilər ki, bu da əslində tam idarəetmənin ələ keçirilməsi ssenarisini təmsil edir. GHSA-935v-rmg9-44mw-də müzakirə edildiyi kimi, saytın digər mənşələr tərəfindən iframe daxilinə alınmasına icazə verilməsi bu eksploytu əhəmiyyətli dərəcədə gizli edir, çünki zərərli vebsayt kompromis strategiyasını arxa planda gizlədə bilər. Lakin bu olmadan belə, hücumçu `auth_callback` linkini birbaşa qurban istifadəçiyə göndərə bilər. Bu problemin qarşısını almaq üçün Cure53 WebSocket kodunun autentifikasiya axınının dəyişdirilməsini tövsiyə edir. Bu baxımdan optimal tətbiq, GET parametri vasitəsilə ötürülən `hassUrl`-ə etibar etməmək olardı. Cure53 məsləhətçilərinin WebSocket cavabları üzərində tam nəzarətə malik olmalarına baxmayaraq, XSS vektorunu müəyyən etmək üçün xeyli vaxt sərf etdiklərini qeyd etməlidir. Bir çox sahələrdə WebSocket-dən gələn məlumatlar düzgün şəkildə təmizlənmişdi (sanitized), bu da eksploytdan sonrakı prosesləri çətinləşdirirdi. Audit komandası sonda fərdiləşdirilmiş panellər üçün `js_url`-i aşkar etdi, lakin ümumilikdə frontend kifayət qədər təhlükəsizlik möhkəmləndirməsi nümayiş etdirirdi. Bu problem Home Assistant Core versiya 2023.8.0-da və npm paketi home-assistant-js-websocket versiya 8.2.0-da həll edilmişdir. İstifadəçilərə yeniləmə etmək tövsiyə olunur. Bu zəiflik üçün məlum olan heç bir alternativ həll yolu yoxdur.
Necə düzəltmək olar
- home-assistant home-assistant2023.8.0 və ya daha yeni versiya
- home-assistant home-assistant-js-websocket8.2.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| home-assistant home-assistant | v < 2023.8.0 | 2023.8.0 |
| home-assistant home-assistant-js-websocket | v < 8.2.0 | 8.2.0 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.