CVE-2026-53983
HighCVSS 8.6Exploitation Probability (EPSS)
Low risk25th percentile - higher than 25% of all known CVEs
Summary
Ground Station prior to 0.6.0 contains an unauthenticated blind server-side request forgery vulnerability in the orbital-source configuration path. An unauthenticated Socket.IO client can connect on port 7000, persist an attacker-supplied URL in the database, and trigger an orbital sync, causing outbound HTTP requests to attacker-chosen destinations, including cloud metadata (169.254.169.254). HTTP status codes and error messages are emitted to clients, providing an oracle for interpreting internal-service responses.
Risk Assessment
An attacker can use the server to scan internal networks, access cloud metadata or other sensitive services, potentially leading to data leakage or privilege escalation. The malicious URL persists in the database and re-fires every 24 hours.
Recommendation
Update Ground Station to version 0.6.0 or later. Enable authentication for Socket.IO and restrict outbound HTTP requests.
Other vulnerabilities in Ground Station
See all- CVE-2026-53451Critical
Ground Station before version 0.4.13 contains a vulnerability in the unauthenticated save-waterfall-snapshot Socket.IO command. An attacker can control the snapshotName input, allowing file writes outside the data directory via path traversal. It is possible to write a YAML logging configuration file that, during service restart, executes arbitrary code (RCE) with service privileges.
- CVE-2026-53984Critical
A vulnerability in Ground Station (before 0.6.0) allows unauthenticated attackers to destroy or replace the entire SQLite database by sending a full_restore command to the Socket.IO server on port 7000. Lack of authentication and wildcard CORS policy enable remote exploitation.
- CVE-2026-53452Medium
Ground Station prior to version 0.4.13 contains a vulnerability where the unauthenticated configure-sdr Socket.IO command accepts a recordingPath for the sigmf-playback SDR and stores it without validation before opening the path without enforcing containment. An absolute path or parent-directory escape ending in .sigmf-meta is parsed as JSON and returned in reply["data"]["metadata"] by the get-sdr-parameters flow. Exploitation requires the metadata file to be readable JSON and to have a sibling .sigmf-data file, but it can disclose contents outside backend/data/recordings without authentication.
- CVE-2026-53985High
Ground Station prior to 0.6.0 contains an unauthenticated denial-of-service vulnerability in the Socket.IO server's service_control event handler that allows any unauthenticated network peer to forcibly terminate the ground-station process by sending a single restart_service command. Attackers can connect to the Socket.IO server on port 7000 without credentials due to disabled authentication enforcement and a wildcard CORS policy, then emit the service_control event to terminate all active satellite-tracking sessions, SDR recording pipelines, demodulators, decoders, and rotator controllers, with repeated triggering possible in Docker deployments to create a persistent denial-of-service condition.
Original NVD description (English source)
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.

