Laut dem von Cycode veröffentlichten Advisory liest der AIT-GUI-Webserver zwar den konfigurierten Host-Wert ein, verwirft ihn jedoch und bindet den Dienst standardmäßig hart kodiert an 0.0.0.0 auf Port 8080. Zudem seien sämtliche zustandsändernden Routen ohne Authentifizierung, ohne Autorisierung und ohne Schutz gegen Cross-Site Request Forgery erreichbar. Zwei dieser Routen erzeugen darüber hinaus Dateisystempfade aus nicht validierten Eingaben. Die Probleme sind als CWE-306, CWE-352 und CWE-22 klassifiziert.
Cycode zufolge akzeptieren die betroffenen Routen Anfragekörper vom Typ application/x-www-form-urlencoded. Da Browser solche Anfragen als einfache CORS-Anfragen behandeln, könne ein ursprungsübergreifendes POST ohne Vorabprüfung zugestellt werden. Das Advisory folgert daraus, dass selbst eine lokal oder per Firewall abgeschottete Installation angreifbar bleibt, wenn ein Operator mit Browserzugriff auf die Konsole eine von Angreifern kontrollierte Webseite besucht. Yuval Elbar von Cycode formulierte es so: Eine Web-Oberfläche für die Steuerung von Raumfahrzeugen und Instrumenten werde mit einem Server ausgeliefert, der auf allen Netzwerkschnittstellen lausche, niemanden nach einem Passwort frage und sich von jeder Webseite aus steuern lasse, die ein Operator öffne.
Mit AIT-GUI 2.5.2 wurde laut Projekt ein Gegenmittel eingeführt. Die Version bindet an den konfigurierten Host, standardmäßig an localhost, ergänzt einen before_request-Hook, der bei POST, PUT, DELETE und PATCH den Origin- oder Referer-Header mit dem eigenen Host des Servers abgleicht, und beschränkt /script/run sowie /seq auf ihre konfigurierten Wurzelverzeichnisse. Im Changelog heißt es, zustandsändernde Endpunkte lehnten nun ursprungsübergreifende Browser-Anfragen über eine Same-Origin-Prüfung ab; nicht browserbasierte Clients ohne diese Header blieben unbeeinträchtigt.
The Hacker News hat nach eigener Darstellung den markierten Quellcode der Versionen 2.4.1, 2.5.1 und 2.5.2 geprüft. Demnach ruft die Root-Route auch in 2.5.2 weiterhin Sessions.create() auf und setzt für jede Anfrage ohne Prüfung von Zugangsdaten ein Sitzungs-Cookie; die Kommando-Route akzeptiere anschließend jede Anfrage, die dieses Cookie mitführt. THN bestätigt daher zwar, dass 2.5.2 den Listen-Bereich der Konsole einschränkt und browsergesteuerte ursprungsübergreifende Anfragen blockiert, aber keine Authentifizierung für die Endpunkte für Kommandos, Skripte oder Sequenzen ergänzt.
Auch beim Paketstand gibt es Unklarheiten. Über PyPI bestätigte THN, dass die jüngste veröffentlichte Version des Pakets ait-gui die 2.4.1 ist, hochgeladen am 27. Juli 2023; 2.5.0, 2.5.1 und 2.5.2 erscheinen dort nicht in der Versionshistorie. Im Quellcode von 2.4.1 findet sich laut THN dieselbe hart kodierte Bindung an 0.0.0.0 sowie dieselbe unbeschränkte Pfadkonstruktion auf beiden betroffenen Routen. PyPI weist für das Paket keine Schwachstellen aus, obwohl das Advisory das Paket-Ökosystem pip nennt.
Parallel existiert mit CVE-2026-60112 ein zweiter Eintrag zu demselben Authentifizierungsfehler in derselben Datei. Die mit 9,3 nach CVSS v4 bewertete Schwachstelle wurde Saidakbarxon Maxsudxonov zugeschrieben und bereits früher in die National Vulnerability Database sowie die GitHub Advisory Database aufgenommen. VulnCheck beschreibt den Fehler so: AIT GUI vor 2.5.1 enthalte eine fehlende Authentifizierung, die es jedem nicht authentifizierten Angreifer im Netzwerk erlaube, über Sessions.create() ohne Prüfung gültiger Zugangsdaten eine gültige Sitzung zu erhalten und beliebige Raumfahrt-Kommandos auszugeben.
Allerdings widersprechen sich die Datensätze beim Patchstand. VulnCheck und NVD verorten den Fehler in Versionen vor 2.5.1 und nennen Commit beb8fc0 als Korrektur, während Cycode 2.5.1 als betroffen und 2.5.2 als behobene Version aufführt. Laut Repository ist die nicht authentifizierte Sitzungserzeugung sowohl in 2.5.1 als auch in 2.5.2 vorhanden. Zudem stellte THN fest, dass die markierte Quelle von 2.5.1 scriptPath auf /script/run bereits mit der vom Advisory empfohlenen Kanonisierung und Begrenzungsprüfung absichert; die unbeschränkte Pfadkonstruktion in 2.5.1 betreffe /seq.
GHSA-p9r8-2q67-fp86 taucht nicht in der globalen Advisory-Datenbank von GitHub auf. CVE-2026-60112 ist dort als ungeprüft ohne Paket, ohne betroffenen Versionsbereich und ohne Dependabot-Unterstützung gelistet. Weitere ungeprüfte Einträge für NASA-Bodensoftware sind dort ebenfalls vorhanden, darunter CVE-2026-47731 für einen Path Traversal im AMMOS Instrument Toolkit, CVE-2026-71214 für den NASA-AMMOS-Aerie/PlanDev-Sequenzierungsserver und CVE-2026-71289 für die Referenzimplementierung des Asynchronous Network Management System. Hinzu kommt CVE-2024-35058, eine kritische Remote-Code-Execution-Lücke in der API-Wait-Funktion von NASA AIT-Core, die laut GitHub Advisory Database bis einschließlich 2.5.2 reicht und weiterhin keine gepatchten Versionen ausweist.
Elbar verfasste den Commit mit der Fehlerbehebung und versah ihn mit einem Co-Authored-By-Eintrag für das Modell Claude Opus 4.8 von Anthropic. Dem Commit zufolge wurden 18 Regressionstests ergänzt, die vor der Korrektur fehlschlagen und danach bestehen. Cycode erklärt, der Fehler sei auf die Weise gefunden worden, wie künftig wohl ein Großteil realer Forschung ablaufen werde: durch einen menschlichen Forscher in Zusammenarbeit mit KI-gestützter Codeanalyse.
