Full Report
Security researchers at Cycode have disclosed a chain of flaws in AIT-GUI, the browser-based operator console for NASA/JPL's open-source AMMOS Instrument Toolkit, that allow an unauthenticated attacker to issue arbitrary commands to the software's spacecraft and instrument command bus. The chain, tracked as GHSA-p9r8-2q67-fp86 and rated 9.4 on the CVSS v3.1 scoring system, impacts AIT-GUI
Analysis Summary
# Vulnerability: Unauthenticated Command Execution in NASA AIT-GUI
## CVE Details
- **CVE ID:** No CVE assigned (Tracked as GHSA-p9r8-2q67-fp86); secondary record CVE-2026-60112
- **CVSS Score:** 9.4 (Critical) [CVSS v3.1]
- **CWE:** CWE-306 (Missing Authentication), CWE-352 (Cross-Site Request Forgery), CWE-22 (Path Traversal)
## Affected Systems
- **Products:** NASA/JPL AMMOS Instrument Toolkit (AIT) - GUI component
- **Versions:** 2.5.1 and earlier (Note: PyPI's latest version 2.4.1 is also confirmed to be vulnerable)
- **Configurations:** Systems where AIT-GUI is accessible over a network or used by an operator who visits external websites while the console is open.
## Vulnerability Description
AIT-GUI is a browser-based operator console used to send commands to spacecraft and instruments. The software suffers from a chain of vulnerabilities:
1. **Missing Authentication:** The web server binds to `0.0.0.0:8080` by default and exposes state-changing routes without any password or credential checks.
2. **Lack of CSRF Protection:** The endpoints accept `application/x-www-form-urlencoded` requests, allowing browsers to perform cross-origin POST requests without a CORS preflight (OPTIONS) check.
3. **Path Traversal:** Routes for running scripts and command sequences do not validate input, allowing attackers to execute files outside of the intended directory.
## Exploitation
- **Status:** PoC available (Verified by researchers via captured network traffic)
- **Complexity:** Low
- **Attack Vector:** Network / Adjacent (Exploitable via direct network access or via a victim's browser using CSRF)
## Impact
- **Confidentiality:** High (Ability to read files via path traversal)
- **Integrity:** High (Ability to issue arbitrary commands to spacecraft and instrument buses)
- **Availability:** High (Potential to disrupt spacecraft operations or server functionality)
## Remediation
### Patches
- **AIT-GUI Version 2.5.2:** Addresses the binding issue by defaulting to `localhost`, adds origin/referer checks to mitigate CSRF, and enforces root directory confinement for script execution.
### Workarounds
- Limit network access to the AIT-GUI port (default 8080) using firewalls or VPC security groups.
- Avoid browsing external websites on the same machine/browser session used to operate the AIT-GUI console.
## Detection
- **Indicators of Compromise:** Unusual POST requests to `/cmd`, `/script/run`, or `/seq` originating from unexpected IP addresses or containing path traversal characters (e.g., `../`).
- **Detection Methods:** Monitor web server logs for unauthorized access to state-changing endpoints and inspect network traffic for cross-origin POST requests targeting the AIT-GUI listener.
## References
- [GitHub Advisory: GHSA-p9r8-2q67-fp86] hxxps[://]github[.]com/advisories/GHSA-p9r8-2q67-fp86
- [Cycode Research Writeup] hxxps[://]cycode[.]com/blog/ait-gui-unauthenticated-command-execution/
- [NASA-AMMOS AIT-GUI Release 2.5.2] hxxps[://]github[.]com/NASA-AMMOS/AIT-GUI/releases/tag/2.5.2