PyTorch團隊本周警告PyPI被上傳了一個冒牌相依性套件,呼籲去年最後一星期下載機器學習框架PyTorch-nightly版的開發人員應儘速移除。

PyTorch團隊指出,如果在12月25日到12月30日之間透過pip管理員安裝Linux 版PyTorch-nightly測試套件,應立即移除該套件及相依套件torchtriton,並安裝12月30日以後的nightly二進位檔。

這是因為在假期間出現在PyPI程式庫的相依套件torchtriton內有一個惡意二進位檔,為冒牌貨。這是名為「相依元件混淆(dependency confusion)」的軟體供應鏈攻擊手法,直接影響在公開PyPI上的套件相依套件。

PyTorch團隊在12月30日發現到惡意的相依性套件torchtriton被上傳到PyPI,其套件名稱和正牌torchtriton套件相同(冒牌者名稱為torchtriton v3.0.0)。由於PyPI index具有優先性,使得冒牌torchtriton會比正牌先被開發人員的pip下載安裝,這是因為其設計允許某人可以用早先存在第三方index的名稱來註冊套件名稱,而pip會預設先安裝PyPI的版本。

但PyPI團隊指出,這個惡意二進位檔需在使用者匯入triton套件,且需要明顯下執行指令才會執行,這並非PyTorch的預設行為。

截至1月1日為止,冒牌torchtriton套件已被下載了2,300多次。

安裝PyTorch穩定(stable)版的用戶不受影響。PyTorch團隊也公布指令以便開發人員或企業檢查其Python環境是否受到惡意套件的影響:

python3 -c "import pathlib;import importlib.util;s=importlib.util.find_spec('triton'); affected=any(x.name == 'triton' for x in (pathlib.Path(s.submodule_search_locations[0] if s is not None else '/' ) / 'runtime').glob('*'));print('You are {}affected'.format('' if affected else 'not '))"

熱門新聞

Advertisement