資安研究人員在 Cycode 公司揭露了 NASA/JPL 開源 AMMOS Instrument Toolkit 的瀏覽器操作介面 AIT-GUI 中一系列的漏洞,這些漏洞允許未經身份驗證的攻擊者向軟體的太空船和儀器指令匯流排發送任意指令。
此漏洞鏈,追蹤代碼為 GHSA-p9r8-2q67-fp86,在 CVSS v3.1 評分系統中被評為 9.4 分,影響 AIT-GUI 版本 2.5.1 及更早版本,並已在版本 2.5.2 中得到修補。公告發布於 2026 年 8 月 13 日,指出尚未為其分配 CVE 編號。
AMMOS Instrument Toolkit 是一個用於建構地面資料系統的框架,該系統負責發送指令給儀器和太空船,並處理回傳的遙測資料。AIT-GUI 是其操作員控制台,而受影響的端點負責將操作員的指令傳遞到指令匯流排。
「未經身份驗證的 POST 請求的影響範圍在於發送的儀器指令,而非被篡改的網頁。」Cycode 在報告中表示。
根據公告,AIT-GUI 網頁伺服器會讀取其配置的主機值然後捨棄,預設將監聽器綁定到硬編碼的位址 0.0.0.0 的 8080 連接埠,並暴露所有狀態變更的路由,且沒有任何身份驗證、授權或跨網站請求偽造 (CSRF) 保護。
其中兩個路由還會從未驗證的輸入建構檔案系統路徑。這些問題被歸類為 CWE-306、CWE-352 和 CWE-22。
公告指出,能夠存取該連接埠的未經身份驗證方可以執行以下操作:
「用於驅動太空船和儀器指令的網頁 GUI,其內建的伺服器監聽所有網路介面,不要求密碼,並且可以被操作員打開的任何網頁所控制。」Cycode 的安全研究員 Yuval Elbar 表示。
由於這些路由接受 application/x-www-form-urlencoded 格式的請求主體,瀏覽器將其視為 CORS 的「簡單」請求,公告指出,跨來源的 POST 請求無需預檢即可到達,因此即使是本地主機或防火牆部署的系統,只要操作員的瀏覽器能夠存取控制台,並造訪攻擊者控制的網頁,仍然可能被利用。
「從真實瀏覽器捕獲的網路流量證實,跨來源的 POST 請求在零次 OPTIONS 預檢請求的情況下被傳送,並且伺服器對其進行了處理。」公告表示。
AIT-GUI 2.5.2 版本於 2026 年 8 月 12 日發布。它綁定了配置的主機,預設為 localhost,並新增了一個請求前的掛鉤 (before_request hook),用於比較請求的 Origin 或 Referer 與伺服器自身的 Host,以處理 POST、PUT、DELETE 和 PATCH 請求,並將 /script/run 和 /seq 的範圍限制在其配置的根目錄下。
「狀態變更的端點(POST/PUT/DELETE/PATCH)現在透過同源檢查(Origin/Referer 對比 Host)拒絕跨來源瀏覽器請求,緩解了 CSRF 問題。不發送這些標頭的非瀏覽器客戶端不受影響。」該專案在其 2.5.2 版本的變更日誌中表示。
THN 在 2026 年 8 月 20 日對標記為 2.5.2 的原始碼進行了確認,該版本限制了控制台的監聽範圍,並阻止了瀏覽器驅動的跨來源請求,但並未向指令、腳本或序列端點添加身份驗證。
我們也在 2026 年 8 月 20 日透過 PyPI 確認,ait-gui 套件的最新發布版本是 2.4.1,於 2023 年 7 月 27 日上傳,而版本 2.5.0、2.5.1 和 2.5.2 並未出現在發布歷史記錄中。2.4.1 的原始碼帶有相同的硬編碼 0.0.0.0 綁定以及兩個路由上相同的未受限制路徑建構,PyPI 並未列出其任何漏洞。公告將受影響的套件生態系統識別為 pip。
另外,第二份記錄涵蓋了同一檔案中相同的缺失驗證缺陷。CVE-2026-60112,在 CVSS v4 中評為 9.3 分,歸功於 Saidakbarxon Maxsudxonov,於 2026 年 7 月 29 日發布到國家漏洞資料庫和 GitHub Advisory Database,比 Cycode 的報告早三週。
「AMMOS Instrument Toolkit (AIT) GUI 2.5.1 版本之前存在一個缺失驗證的漏洞,允許任何未經身份驗證的網路攻擊者透過呼叫 Sessions.create() 而無需任何憑證檢查,即可獲得有效會話並發送任意太空船指令。」VulnCheck 在一份帶有 CVE 描述的公告中表示。
這兩份記錄在修補方案上存在分歧。VulnCheck 和 NVD 的條目將該缺陷歸咎於 2.5.1 版本之前,並引用 commit beb8fc0 作為修補程式,但 Cycode 的公告將 2.5.1 列為受影響版本,並將 2.5.2 列為已修補版本。儲存庫顯示,未經身份驗證的會話發送問題同時存在於 2.5.1 和 2.5.2 版本中。
Cycode 公告範圍中的一個元素在其命名的發布版本中並不適用。公告聲稱其發現已在 2.5.1 版本和 master 分支上得到驗證,而 The Hacker News 發現標記為 2.5.1 的原始碼已經透過公告建議的標準化和包含檢查來限制 /script/run 的 scriptPath。2.5.1 版本中未受限制的路徑建構存在於 /seq 上。
GHSA-p9r8-2q67-fp86 並未出現在 GitHub 的全球諮詢資料庫中,而 CVE-2026-60112 在該處被列為未審核,沒有套件、沒有受影響的版本範圍,也沒有 Dependabot 支援。兩份記錄均未反映在 PyPI 的套件漏洞資料中。
Elbar 於 2026 年 7 月 10 日撰寫了包含修補程式的 commit,並包含一個聯合作者標記,命名為 Anthropic 的 Claude Opus 4.8 模型。該 commit 新增了 18 個回歸測試,其訊息表示這些測試在修補前的程式碼上失敗,修補後則通過。
「這個錯誤的發現方式是我們認為未來大部分真實研究將會進行的方式:一位人類研究員與 AI 輔助的程式碼分析協同工作。」Cycode 在報告中表示。
兩份記錄均未提及運行該軟體的任務,也未報告任何利用情況。GitHub Advisory Database 包含 NASA 地面軟體的其他幾項未審核記錄,包括 CVE-2026-47731,該漏洞被描述為 AMMOS Instrument Toolkit 中的路徑遍歷,可導致任意檔案附加,且可透過網路觸發;以及 NASA-AMMOS Aerie/PlanDev 定序伺服器 (CVE-2026-71214) 和非同步網路管理系統參考實施 (CVE-2026-71289) 的關鍵記錄。
該工具包的核心函式庫帶有一個較舊的未解決條目。CVE-2024-35058,一個在 NASA AIT-Core 的 API wait 函式中的關鍵遠端程式碼執行漏洞,於 2024 年 5 月發布,影響版本最高至 2.5.2(包含),其 GitHub Advisory Database 記錄仍將其修補版本列為無。