CVE-2023-41896
Açıklama
Home Assistant açık kaynaklı bir ev otomasyonudur. Frontend kodu gizli parametreleri belirlemek amacıyla denetlenirken Cure53, `state` parametresi ile birlikte WebSocket kimlik doğrulama mantığı tarafından kullanılan `auth_callback=1` parametresini tespit etmiştir. State parametresi, daha sonra bir WebSocket bağlantısı kurmak için kullanılan `hassUrl` bilgisini içerir. Bu davranış, bir saldırganın, frontend'in alternatif bir WebSocket backend'ine bağlanmasını zorlayan değiştirilmiş bir state parametresine sahip kötü amaçlı bir Home Assistant bağlantısı oluşturmasına izin verir. Böylece saldırgan, herhangi bir WebSocket yanıtını taklit edebilir ve siteler arası betik çalıştırma (XSS) tetikleyebilir. XSS gerçek Home Assistant frontend alan adında yürütüldüğü için gerçek Home Assistant backend'ine bağlanabilir, bu da esasen kapsamlı bir sistem ele geçirme senaryosini temsil eder. GHSA-935v-rmg9-44mw içerisinde tartışıldığı üzere, sitenin diğer kökenler tarafından iframe içine alınmasına izin verilmesi, kötü amaçlı bir web sitesinin saldırı stratejisini arka planda gizleyebilmesi nedeniyle bu istismarı önemli ölçüde örtük hale getirir. Ancak bu durum olmasa bile, saldırgan `auth_callback` bağlantısını doğrudan mağdur kullanıcıya gönderebilir. Bu sorunu gidermek için Cure53, WebSocket kodunun kimlik doğrulama akışının değiştirilmesini önermektedir. Bu konudaki optimal uygulama, bir GET parametresiyle iletilen `hassUrl` bilgisine güvenmemek olacaktır. Cure53 danışmanları, WebSocket yanıtları üzerinde tam kontrole sahip olmalarına rağmen, bir XSS vektörü belirlemek için gereken önemli süreyi belirtmek durumundadır. Birçok alanda WebSocket'ten gelen veriler uygun şekilde temizlenmiş olup bu durum istismar sonrası işlemleri engellemektedir. Denetim ekibi sonunda özel paneller için `js_url` kısmını tespit etmiş olsa da genel olarak frontend makul bir güvenlik sıkılaştırması sergilemiştir. Bu sorun Home Assistant Core versiyon 2023.8.0 ve npm paketi home-assistant-js-websocket versiyon 8.2.0 ile giderilmiştir. Kullanıcıların yükseltme yapmaları önerilir. Bu zafiyet için bilinen bir geçici çözüm yoktur.
Nasıl düzeltilir
- home-assistant home-assistant2023.8.0 ya da sonraki bir sürüm
- home-assistant home-assistant-js-websocket8.2.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| home-assistant home-assistant | v < 2023.8.0 | 2023.8.0 |
| home-assistant home-assistant-js-websocket | v < 8.2.0 | 8.2.0 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.