研究人員強調微軟的易受攻擊代碼允許未經授權的 PC 文件訪問

研究人員強調微軟的易受攻擊代碼允許未經授權的 PC 文件訪問

微軟的NLWeb:概述

2023 年 5 月,在 Build 2025 大會期間,微軟推出了一項名為 NLWeb 的創新計劃,即「自然語言網路」。該專案旨在促進人工智慧代理和網站之間的智慧交互,使它們能夠透過直接與線上服務互動來執行複雜的任務。

NLWeb 的影響

在參與的公司中,Shopify 和 TripAdvisor 都表示支持這個概念,將 NLWeb 定位為微軟所稱的「代理網路」的關鍵組成部分。這個願景預示著未來人工智慧可以自主在線上執行一系列任務,從而顯著簡化使用者體驗。

發現安全漏洞

然而,NLWeb 框架的安全性引發了廣泛擔憂。安全研究員關奧南 (Aonan Guan) 與其合作夥伴王磊 (Lei Wang) 在該開源專案的程式碼庫中發現了一個路徑遍歷漏洞。他們的發現源自於對NLWeb GitHub 程式碼庫的檢查,特別是一個名為 的檔案。 webserver/static_file_handler.py

漏洞技術分析

所發現的缺陷位於特定的程式碼段:

# The vulnerable code snippet safe_path = os.path.normpath(path.lstrip('/'))

possible_roots = [ APP_ROOT, os.path.join(APP_ROOT, ‘site’, ‘wwwroot’), ‘/home/site/wwwroot’, os.environ.get(‘HOME’, ”), ]

# 後面的程式碼…full_path = os.path.join(root, safe_path)

該程式碼片段的第一行看似無害;旨在透過消除不必要的分隔符號和上級引用來規範化路徑,該過程記錄在官方 Python 文件中。 os.path.normpath()

漏洞的影響

雖然此功能很有用,但它也帶來了安全漏洞。據關先生稱,它無法限制用戶利用目錄遍歷技術(例如序列)來存取目標網頁目錄之外的內容。 ../

為了驗證問題,Guan 在 上設定了一個本機伺服器設定。透過執行 命令,他成功檢索了 的內容,這是包含使用者帳戶詳細資訊的 UNIX 系統上的重要資訊。 0.0.0.0:8000 curl "http://localhost:8000/static/..%2f..%2f..%2fetc/passwd" /etc/passwd

圖:關奧南

此外,Guan 還能夠存取其他敏感文件,包括專案文件。由於該文件包含 API 金鑰等敏感憑證,因此本應始終保持機密。運行以下命令進一步證明了這一點。 .env curl "http://localhost:8000/static/..%2f..%2f..%2fUsers//NLWeb/code/.env"

微軟的回應與建議

關先生在5月28日報告了這項發現,微軟當天就承認了這一問題,並在48小時內實施了修復。解決方案涉及幾項關鍵措施:

  • 對路徑中的任何實例進行初始過濾,以對抗潛在的目錄遍歷嘗試。 ..
  • 驗證所要求的檔案是否具有可接受的副檔名,包括.html、.css 和.json 等格式。
  • 解析絕對路徑以確認它位於授權的根目錄中,從而防止任何未經授權的存取。

有鑑於此事件,關先生強調立即更新所有NLWeb實例的重要性。他強調,隨著代理網路概念的擴展,新的漏洞也隨之暴露,尤其是自然語言處理如果不加以嚴格管理,可能會無意中解釋惡意檔案路徑或命令。

您可以在Neowin上找到有關此問題的更多資訊和完整的漏洞報告。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *