CVE-2025-68620
Təsvir
Signal K Server, qayıqlarda mərkəzi hub üzərində işləyən server tətbiqidir. 2.19.0 versiyasından əvvəlki versiyalarda, heç bir ön autentifikasiya olmadan JWT autentifikasiya tokenlərini oğurlamaq üçün birləşdirilə bilən iki funksiya mövcuddur. Hücum, WebSocket əsaslı sorğu enumerasiyasını giriş sorğusunun statusunun autentifikasiyasız yoxlanılması ilə birləşdirir. Birincisi Autentifikasiyasız WebSocket Sorğu Enumerasiyasıdır: WebSocket kliyenti `servervents=all` sorğu parametri ilə SignalK axın nöqtəsinə qoşulduqda, server gözləyən giriş sorğuları haqqında təfərrüatlar ehtiva edən `ACCESS_REQUEST` hadisələri də daxil olmaqla bütün keşlənmiş server hadisələrini göndərir. `startServerEvents` funksiyası `app.lastServerEvents` üzrə iterasiya aparır və avtorizasiya səviyyəsini yoxlamadan hər bir keşlənmiş hadisəni qoşulmuş istənilən kliyentə yazır. WebSocket bağlantıları yalnız oxuma hüququ olan istifadəçilərə (`allow_readonly` doğru olduqda autentifikasiya olunmamış istifadəçilər də daxildir) icazə verdiyi üçün, hücumçular sorğu ID-ləri, kliyent identifikatorları, təsvirlər, tələb olunan icazələr və IP ünvanlarını ehtiva edən bu hadisələri qəbul edirlər. İkincisi Autentifikasiyasız Token Yoxlanmasıdır: `/signalk/v1/access/requests/:id` ünvanındakı giriş sorğusu statusu nöqtəsi, autentifikasiya tələb etmədən giriş sorğusunun tam vəziyyətini qaytarır. Administrator sorğunu təsdiqlədikdə, cavab verilən məlumatlarda buraxılmış JWT tokeni açıq şəkildə (plaintext) yer alır. `queryRequest` funksiyası token sahəsi də daxil olmaqla tam sorğu obyektini qaytarır və REST nöqtəsi yalnız oxuma autentifikasiyasından istifadə edərək autentifikasiyasız girişə icazə verir. Hücumçunun bu zəifliklərdən istifadə etmək üçün iki yolu var. Ya hücumçu öz giriş sorğusunu yaradır (inandırıcı saxta sorğu hazırlamaq üçün IP spoofing zəifliyindən istifadə edərək), sonra administrator onu təsdiqləyənə qədər öz sorğu ID-sini yoxlayaraq JWT tokenini əldə edir; ya da hücumçu legitim cihazlardan gələn sorğu ID-lərini aşkar etmək üçün passiv şəkildə WebSocket axınını izləyir, daha sonra həmin ID-ləri yoxlayır və administratorlar onları təsdiqlədikdə JWT tokenlərini oğurlayaraq legitim cihaz etibarnamələrini ələ keçirir. Hər iki yol sıfır autentifikasiya tələb edir və tam autentifikasiyadan yan keçməyə imkan verir. 2.19.0 versiyası köklü problemləri aradan qaldırır.
Necə düzəltmək olar
- signalk signal_k_server2.19.0 və ya daha yeni versiya
- signalk-server2.19.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| signalk signal_k_server | v < 2.19.0, 2.19.0 | 2.19.0 |
| signalk-servernpm | v < 2.19.0 | 2.19.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.