NASAの宇宙機運用ツール「AIT-GUI」に深刻な脆弱性、未認証でコマンド送信が可能な状態が判明
要点
-
NASAおよびJPLが公開するオープンソースの地上運用ツール「AIT-GUI」に、認証なしで宇宙機や機器へコマンドを送信できる脆弱性チェーンが存在することが判明した。
-
セキュリティ企業Cycodeが脆弱性情報(GHSA-p9r8-2q67-fp86、CVSS v3.1スコア9.4)を開示し、バージョン2.5.1以前が影響を受ける。
-
Webサーバーが外部の全ネットワークへ待機する設定や、パスワード不要でセッションが発行される仕組み、パストラバーサルの不備などが組み合わさっていた。
-
修正版としてバージョン2.5.2が公開されたものの、通信範囲の制限やCSRF対策にとどまり、認証機能の欠如という根本的な課題は残されていると指摘されている。
-
セキュリティ企業のCycodeは2026年8月13日、米航空宇宙局(NASA)とジェット推進研究所(JPL)が開発するオープンソースツール「AIT-GUI」において、重大な脆弱性チェーンを発見したと公表した。影響を受けるのはバージョン2.5.1以前の環境で、共通脆弱性評価システムCVSS v3.1の基本値は9.4と評価されている。悪用された場合、認証を経ていない攻撃者が宇宙機や観測機器を制御するためのコマンドバスへ、任意の指示を直接送信できる状態にあったという。
宇宙機管制を担う「AIT-GUI」と脆弱性の影響範囲
AMMOS Instrument Toolkit(AIT)は、宇宙機や搭載機器へのコマンド送信、および送り返されるテレメトリ(遠隔測定データ)の処理を行う「地上データシステム」を構築するためのフレームワークである。今回問題が指摘されたAIT-GUIは、オペレーターがブラウザ経由でシステムを操作するためのWebコンソールに位置づけられる。
開示された脆弱性チェーンは「GHSA-p9r8-2q67-fp86」として追跡されている。アドバイザリ公開時点でCVE番号は割り当てられていないが、同一ファイル内の認証欠如の不備を対象としたレコード「CVE-2026-60112」(CVSS v4スコア9.3)も別途存在する。Cycodeは、単なるWebページの改ざんにとどまらず、実際の観測機器や宇宙機に対する制御コマンドが第三者から直接発行されてしまう点に極めて大きな危険性があると説明している。
認証回避とパストラバーサルを組み合わせた攻撃の仕組み
Cycodeの分析によると、AIT-GUIのWebサーバーには複数の実装上の不備が存在していた。まず、設定ファイルで指定されたホスト値を読み込んだ直後に破棄し、デフォルトで全ネットワークインターフェースを表す「0.0.0.0」のポート8080へ強制的にバインドする仕様となっていた。これにより、サーバーが意図せず外部ネットワークへ露出する状態が生じていた。
さらに、コマンド送信(/cmd)、スクリプト実行(/script/run)、シーケンス実行(/seq)の各ルートには、パスワード等による認証・認可や、CSRF(利用者の意図しない操作をWeb経由で実行させる攻撃)に対する保護が設けられていなかった。これらのルートはセッションCookieを要求する設計だったものの、ルートページ(GET /)へアクセスするだけで、認証情報なしに有効なセッションID(sid)が自動発行される構造となっていた。攻撃者はルートページから取得したCookieを付与してリクエストを送るだけで、容易にコマンド送信エンドポイントを実行できた。
加えて、スクリプト実行およびシーケンス実行のルートでは、入力値の検証が不十分なままファイルパスを組み立てていた。そのため、パストラバーサル(意図した公開ディレクトリを遡ってファイルへアクセスする手法)を悪用し、管理対象外のディレクトリにあるスクリプトの実行や、サブプロセスへのファイル引き渡しが可能になっていたという。分類上は、重要な機能に対する認証の欠如(CWE-306)、CSRF(CWE-352)、パストラバーサル(CWE-22)に該当する。
また、対象エンドポイントがWebフォーム形式のデータ(application/x-www-form-urlencoded)を受け付ける仕様だったため、ブラウザはCORS(異なるオリジン間でのリソース共有機構)における事前確認通信(プリフライト)を行わずにリクエストを送信する。Cycodeがローカル環境で実証したところ、オペレーターが悪意あるWebページを閲覧しただけで、ブラウザ経由でクロスオリジンのPOSTリクエストがサーバーへ直接届き、処理されることが確認された。
バージョン2.5.2の公開と残された課題
本脆弱性への対策として、開発チームは2026年8月12日に修正版となる「AIT-GUI 2.5.2」をリリースした。2.5.2では、サーバーのバインド先を設定値(デフォルトはローカルホスト)に従うよう修正したほか、状態を変更するリクエスト(POST、PUT、DELETE、PATCH)に対して通信元のヘッダ(Origin または Referer)とサーバー自身のホスト名を比較するチェック機能を追加し、ブラウザを介したCSRF攻撃を遮断した。スクリプトやシーケンスの実行範囲も設定されたルートディレクトリ内へと制限されている。
しかし、セキュリティメディア「The Hacker News」がリポジトリ内のソースコードを確認したところ、2.5.2においてもルートページで無条件にセッションを発行する処理や、Cookieのみでコマンドを許可する構造自体は残されており、エンドポイントに対する本来の認証機構は追加されていないことが分かった。Cycodeは、遠隔からのアクセス経路やクロスサイト経由の攻撃は塞がれたものの、認証の欠如という根本的な脆弱性は依然として解消されていないとの見解を示している。
なお、Pythonの公式パッケージリポジトリ(PyPI)において配布されている ait-gui パッケージは、2023年7月27日に公開されたバージョン2.4.1が最新となっており、2.5.0以降のリリースは反映されていない。2.4.1のコードにも同様のバインド設定やパス検証の不備が含まれていることが確認されている。