{"id":"CVE-2026-53451","summary":"Ground Station: Unauthenticated arbitrary file write (path traversal) in save-waterfall-snapshot leads to remote code execution","details":"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.","aliases":["GHSA-q35x-w3h6-36w8"],"modified":"2026-09-20T11:30:26.632063521Z","published":"2026-08-19T14:45:23.951Z","database_specific":{"cwe_ids":["CWE-22","CWE-73","CWE-94"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53451.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/sgoudelis/ground-station/releases/tag/v0.4.13"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53451.json"},{"type":"ADVISORY","url":"https://github.com/sgoudelis/ground-station/security/advisories/GHSA-q35x-w3h6-36w8"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53451"},{"type":"FIX","url":"https://github.com/sgoudelis/ground-station/commit/5649905f1021155933463a54a76030924adffb9d"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/sgoudelis/ground-station","events":[{"introduced":"0"},{"fixed":"5649905f1021155933463a54a76030924adffb9d"},{"fixed":"fc971642d461b237c1bf2695d88da3d48f03ff1c"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"0.4.13"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v0.4.12","v0.4.11","v0.4.10","v0.4.9","v0.4.8","v0.4.7","v0.4.6","v0.4.5","v0.4.4","v0.4.3","v0.4.2","v0.4.1","v0.4.0","v0.3.16","v0.3.15","v0.3.14","v0.3.13","v0.3.12","v0.3.11","v0.3.10","v0.3.9","v0.3.8","v0.3.7","v0.3.6","v0.3.5","v0.3.4","v0.3.3","v0.3.2","v0.3.1","v0.3.0","v0.2.19","v0.2.18","v0.2.17","v0.2.16","v0.2.15","v0.2.14","v0.2.13","v0.2.11","v0.2.10","v0.2.9","v0.2.8","v0.2.7","v0.2.6","v0.2.5","v0.2.4","v0.2.3","v0.2.2","v0.2.1","v0.2.0","v0.1.85","v0.1.84","v0.1.83","v0.1.82","v0.1.81","v0.1.80","v0.1.79","v0.1.78","v0.1.77","v0.1.76","v0.1.75","v0.1.74","v0.1.73","v0.1.72","v0.1.71","v0.1.70","v0.1.69","v0.1.68","v0.1.67","v0.1.66","v0.1.65","v0.1.64","v0.1.63","v0.1.62","v0.1.61","v0.1.60","v0.1.59","v0.1.58","v0.1.57","v0.1.56","v0.1.55","v0.1.54","v0.1.53","v0.1.52","v0.1.51","v0.1.50","v0.1.49","v0.1.48","v0.1.47","v0.1.46","v0.1.45","v0.1.44","v0.1.43","v0.1.42","v0.1.41","v0.1.40","v0.1.39","v0.1.38","v0.1.37","v0.1.36","v0.1.35","v0.1.34","v0.1.33","v0.1.32","v0.1.31","v0.1.30","v0.1.29","v0.1.28","v0.1.27","v0.1.26","v0.1.25","v0.1.24","v0.1.23","v0.1.22","v0.1.21","v0.1.20","v0.1.19","v0.1.18","v0.1.17","v0.1.16","v0.1.15","v0.1.14","v0.1.13","v0.1.12","v0.1.11","v0.1.10","v0.1.9","v0.1.8","v0.1.7","0.1.7","v0.1.6","v0.1.5-test6","v0.1.5-test5","v0.1.5-test4","v0.1.5-test3","v0.1.5-test2","v0.1.5-test1","v0.1.5","push","v0.1.4","v0.1.3"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53451.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}