CVE-2026-53983

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.
Configurations

No configuration.

History

23 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) Ground Station anterior a 0.6.0 contiene una vulnerabilidad de falsificación de petición del lado del servidor ciega no autenticada en la ruta de configuración de la fuente orbital que permite a cualquier cliente Socket.IO no autenticado causar que el proceso de la estación terrestre emita peticiones HTTP salientes a destinos elegidos por el atacante. Los atacantes pueden conectarse al servidor Socket.IO en el puerto 7000 sin credenciales debido a la aplicación de autenticación deshabilitada y una política CORS de comodín, luego enviar un evento data_submission con la acción submit-orbital-sources para persistir una URL proporcionada por el atacante en la base de datos, luego activar una sincronización orbital a través del evento background_task:start, igualmente no autenticado. La URL se almacena sin lista blanca de esquemas, sin validación de host y sin rechazo de direcciones de bucle invertido, RFC1918 o de enlace local (metadatos de instancia en la nube en 169.254.169.254), y se pasa directamente a requests.get en _fetch_http_3le y _fetch_http_omm en backend/tlesync/source_adapters.py. Los códigos de estado HTTP y los mensajes de error de la petición saliente se emiten en el evento Socket.IO orbital_sync_state a todos los clientes conectados, proporcionando un oráculo útil para interpretar las respuestas de servicios internos y metadatos de la nube aunque el cuerpo de la respuesta sin procesar no se filtra directamente. Debido a que la fuente maliciosa persiste en la base de datos a través de los reinicios y se vuelve a activar cada 24 horas en el ciclo de sincronización programado, la primitiva proporciona SSRF duradero a largo plazo sin que el atacante necesite permanecer conectado.

Information

Published : 2026-08-06 22:17

Updated : 2026-10-24 16:10


NVD link : CVE-2026-53983

Mitre link : CVE-2026-53983

CVE.ORG link : CVE-2026-53983


JSON object : View

Products Affected

No product.

CWE
CWE-918

Server-Side Request Forgery (SSRF)