CVE-2026-53983
WysokieCVSS 8.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 25 - wyżej niż 25% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wykorzystać serwer do skanowania wewnętrznej sieci, uzyskać dostęp do metadanych chmury lub innych wrażliwych usług, co może prowadzić do wycieku danych lub eskalacji uprawnień. Złośliwy URL utrzymuje się w bazie danych i jest ponownie wyzwalany co 24 godziny.
Rekomendacja
Zaktualizuj Ground Station do wersji 0.6.0 lub nowszej. Włącz uwierzytelnianie dla Socket.IO i ogranicz wychodzące żądania HTTP.
Inne podatności w Ground Station
Zobacz wszystkie- CVE-2026-53451Krytyczne
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.
- 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-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 prior to 0.6.0 contains an unauthenticated blind server-side request forgery vulnerability in the orbital-source configuration path that allows any unauthenticated Socket.IO client to cause the ground-station process to issue outbound HTTP requests to attacker-chosen destinations. Attackers can connect to the Socket.IO server on port 7000 without credentials due to disabled authentication enforcement and a wildcard CORS policy, then submit a data_submission event with submit-orbital-sources action to persist an attacker-supplied URL in the database, then trigger an orbital sync via the equally unauthenticated background_task:start event. The URL is stored with no scheme allowlist, no host validation, and no rejection of loopback, RFC1918, or link-local (cloud instance metadata at 169.254.169.254) addresses, and is passed directly to requests.get in _fetch_http_3le and _fetch_http_omm in backend/tlesync/source_adapters.py. HTTP status codes and error messages from the outbound request are emitted in the orbital_sync_state Socket.IO event to all connected clients, providing a serviceable oracle for interpreting internal-service and cloud-metadata responses even though the raw response body is not directly leaked. Because the malicious source persists in the database across restarts and re-fires every 24 hours on the scheduled sync cycle, the primitive gives durable long-term SSRF without the attacker needing to remain connected.

