研究人員在TorchServe中發現多個高分漏洞,影響數萬AI 服務器。

TorchServe是由Meta和 Amazon負責維護的開源的PyTorch 模型服務庫,可大規模部署經過訓練的 PyTorch,無需編寫自定義代碼,被學術界和產業界廣泛應用于人工智能模型訓練和開發,包括亞馬遜、OpenAI、特斯拉、Azure、谷歌、Intel等。

ShellTorch

Oligo安全研究人員在開源的TorchServe AI模型服務工具中發現了3個高分安全漏洞——ShellTorch。攻擊者利用這些漏洞可以實現非授權的服務器訪問、遠程代碼執行等,影響數萬聯網服務器,其中部分服務器隸屬于大型公司。

ShellTorch漏洞是3個漏洞的集合,影響 TorchServe v0.3.0到v0.8.1版本,這3個漏洞分別是:

1.濫用管理控制臺(未經認證的管理接口API錯誤配置):TorchServe會暴露多個接口,其中包括允許運行時管理模型的管理API接口。研究人員在其中發現一個錯誤配置漏洞,導致web panel默認在IP地址0.0.0.0而非localhost,會暴露外部請求。由于接口缺乏認證,任何用戶都可以無限制訪問,因此攻擊者可以從外部地址上傳惡意模型。

2.CVE-2023-43654:第二個漏洞是惡意模型注入漏洞,CVSS評分9.8分,通過遠程服務器端請求偽造偽造(SSRF)引發遠程代碼執行。TorchServe模型的配置文件可以使用workflow/model注冊API來從遠程URL取回。API中包含所允許的域名列表,研究人員發現默認情況下所有的域名都被認為是有效的,因此會引發SSRF。攻擊者可以通過上傳惡意模型來在目標服務器上觸發任意代碼執行。

3.CVE-2022-1471:第三個漏洞是一個不安全的開源庫使用漏洞,CVSS評分9.9分,漏洞產生的根源是一個Java 反序列化問題引發的遠程代碼執行。由于SnakeYAML庫的不安全反序列化,攻擊者可以上傳包含惡意YAML文件的模型來觸發遠程代碼執行。

攻擊者利用這三個漏洞就可以入侵運行有漏洞版本TorchServe的系統,ShellTorch攻擊PoC視頻參見:

https://player.vimeo.com/video/870718937

Oligo 研究人員發布了一個工具來檢測其服務器實例是否受到ShellTorch攻擊的影響,工具下載地址:https://github.com/OligoCyberSecurity/ShellTorchChecker

補丁

Oligo 研究人員分析發現有上萬個IP地址(服務器)受到ShellTorch攻擊的影響,為修復以上漏洞,建議用戶:

1.升級到TorchServe 0.8.2版本,但該版本未修復CVE-2023-43654 。

2.將config.properties文件的管理地址(management_address)設置為http://127.0.0.1:8081來重新正確配置管理控制臺。 

3.更新 config.properties文件中的allowed_urls,確保服務器只從可信域名取回模型。