CVE-2026-53451
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 57 - wyżej niż 57% wszystkich znanych CVE
Streszczenie
Ground Station przed wersją 0.4.13 zawiera podatność w nieuwierzytelnionym poleceniu Socket.IO save-waterfall-snapshot. Atakujący może kontrolować nazwę pliku (snapshotName), co pozwala na zapis plików poza katalogiem danych (path traversal). Możliwe jest zapisanie pliku YAML z konfiguracją logowania, który podczas restartu usługi wykonuje dowolny kod (RCE) z uprawnieniami usługi.
Ocena ryzyka
Atakujący może wykonać dowolny kod na serwerze z uprawnieniami usługi, co może prowadzić do pełnego przejęcia systemu, trwałego zakłócenia działania (crash loop) lub kradzieży danych.
Rekomendacja
Zaktualizuj Ground Station do wersji 0.4.13 lub nowszej. Ogranicz dostęp do usługi i monitoruj logi pod kątem nietypowych operacji.
Inne podatności w Ground Station
Zobacz wszystkie- CVE-2026-103244Krytyczne
ground-station przed wersją 0.8.0 zawiera podatność obejścia uwierzytelniania w poleceniu setup.restore, która pozwala nieuwierzytelnionym atakującym na wykonanie dowolnego SQL podczas trybu pierwszej konfiguracji. Atakujący mogą wywołać setup.restore przez Socket.IO, aby umieścić konta administratorów i sfałszowane tokeny sesji, a następnie uwierzytelnić się jako administrator bez poświadczeń, co prowadzi do całkowitego przejęcia aplikacji.
- CVE-2026-53984Krytyczne
Podatność w Ground Station (przed wersją 0.6.0) pozwala nieuwierzytelnionym atakującym na zniszczenie lub podmianę całej bazy danych SQLite poprzez wysłanie komendy full_restore do serwera Socket.IO na porcie 7000. Brak uwierzytelniania i polisa CORS typu wildcard umożliwiają zdalne wykonanie.
- CVE-2026-53452Średnie
Ground Station przed wersją 0.4.13 zawiera podatność polegającą na braku uwierzytelnienia w komendzie configure-sdr Socket.IO, która akceptuje recordingPath dla sigmf-playback SDR. Ścieżka jest przechowywana bez walidacji, a następnie otwierana bez ograniczeń, co pozwala na odczyt plików poza katalogiem nagrań. Eksploatacja wymaga, aby plik metadanych był czytelnym JSON i miał sąsiedni plik .sigmf-data, ale może ujawnić zawartość poza backend/data/recordings bez uwierzytelnienia.
- CVE-2026-53983Wysokie
Ground Station przed wersją 0.6.0 zawiera nieuwierzytelnioną podatność na blind SSRF w ścieżce konfiguracji orbital-source. Nieuwierzytelniony klient Socket.IO może połączyć się na porcie 7000, zapisać złośliwy URL w bazie danych i wyzwolić synchronizację orbitalną, co powoduje wysyłanie żądań HTTP do wybranych przez atakującego miejsc docelowych, w tym do metadanych chmury (169.254.169.254). Statusy HTTP i błędy są emitowane do klientów, co umożliwia interpretację odpowiedzi wewnętrznych usług.
- CVE-2026-53985Wysokie
Ground Station przed wersją 0.6.0 zawiera nieuwierzytelnioną podatność na odmowę usługi w serwerze Socket.IO w obsłudze zdarzenia service_control, która pozwala każdemu nieuwierzytelnionemu peerowi sieciowemu na wymuszenie zakończenia procesu ground-station poprzez wysłanie pojedynczego polecenia restart_service. Atakujący mogą połączyć się z serwerem Socket.IO na porcie 7000 bez poświadczeń z powodu wyłączonego egzekwowania uwierzytelniania i polityki CORS z wildcard, a następnie wyemitować zdarzenie service_control, aby zakończyć wszystkie aktywne sesje śledzenia satelitów, potoki nagrywania SDR, demodulatory, dekodery i kontrolery rotatorów, z możliwością wielokrotnego wyzwalania w środowiskach Docker, tworząc trwałą odmowę usługi.
Oryginalny opis (angielski, źródło NVD)
Ground Station is a browser-based suite for satellite tracking, SDR reception, hardware control, and telemetry decoding. Prior to version 0.4.13, the unauthenticated save-waterfall-snapshot Socket.IO command passes attacker-controlled snapshotName input from backend/handlers/entities/sdr.py to backend/server/snapshots.py, where os.path.join permits an absolute path or parent-directory traversal and writes attacker-controlled base64-decoded bytes outside backend/data/snapshots. An attacker can write a logging YAML file containing a logging.config.dictConfig callable factory, use the unauthenticated update-app-config operation to set log_config to that file, and invoke restart_service. During restart, backend/common/logger.py passes the YAML through resolve_log_config_path(), yaml.safe_load(), and logging.config.dictConfig(), which executes the factory with service privileges and can also cause a persistent crash loop. This issue is fixed in version 0.4.13.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

