Description
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.
Published: 2026-08-19
Score: 9.8 Critical
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Ground Station's unauthenticated save-waterfall-snapshot Socket.IO command permits an attacker to supply a snapshotName that is used without validation in os.path.join, allowing absolute or parent‑directory traversal. The resulting write operation can place arbitrary base64‑decoded bytes outside the intended snapshots directory. An attacker can leverage this to create a YAML file containing a logging.config.dictConfig callable factory, then use the unauthenticated update‑app‑config operation to point the application’s log_config to that file and trigger restart_service. During restart, the logger resolves the path, loads the YAML with yaml.safe_load, and executes dictConfig, which runs the factory with service privileges, resulting in arbitrary code execution and the potential for a persistent crash loop.

Affected Systems

Ground Station, offered by sgoudelis, is affected in all releases prior to 0.4.13. The issue exists in the backend that handles the save‑waterfall‑snapshot and restart_service commands. Only users of the browser‑based suite running a vulnerable version are impacted.

Risk and Exploitability

The CVSS score of 9.8 indicates a critical severity. EPSS is not available, but the vulnerability is exploitable over the network by any actor with access to the Socket.IO endpoint, as the save‑waterfall‑snapshot command is unauthenticated. The lack of KEV listing does not diminish the risk; an attacker can achieve remote code execution with minimal prerequisites, making this a high‑priority issue.

Generated by OpenCVE AI on August 19, 2026 at 17:51 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the vendor‑provided update to Ground Station version 0.4.13 or later, which removes the vulnerable path handling
  • If an immediate upgrade is not possible, isolate the application by restricting network access to the Socket.IO API to trusted hosts only
  • Reconfigure the application to use a safe logging configuration path, or disable the ability to load external logging configuration files

Generated by OpenCVE AI on August 19, 2026 at 17:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 19 Aug 2026 15:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Ground Station: Unauthenticated arbitrary file write (path traversal) in save-waterfall-snapshot leads to remote code execution
Weaknesses CWE-22
CWE-73
CWE-94
References
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T14:45:23.951Z

Reserved: 2026-06-09T16:31:21.494Z

Link: CVE-2026-53451

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-19T15:17:10.120

Modified: 2026-08-19T15:17:10.120

Link: CVE-2026-53451

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-19T18:00:05Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

  • CWE-73

    External Control of File Name or Path

  • CWE-94

    Improper Control of Generation of Code ('Code Injection')