被忽視15年的CVE-2007-4559 Python漏洞 導致35萬項目陷入代碼執行風險

Python 編程語言中一個被忽視了 15 年的漏洞,正在重新引發人們的關注,因為它可能對超過 35 萬個開源存儲庫項目造成影響。其實早在 2007 年,就已經有安全研究人員披露並標記過 CVE-2007-4559 。遺憾的是,它一直沒有獲得正式的修復補丁。唯一的緩解措施,也只是在更新后的開發者文檔中提示了相關風險。但是現在,該漏洞又被發現可用於代碼執行。

0-1.jpg

Bleeping Computer 指出,該漏洞位於 Python tarfile 包中。在使用未經處理的 tarfile.extract() 函數、或 tarfile.extractall() 內置默認值的代碼中,這個路徑遍歷漏洞就有可能被利用於覆蓋任意文件。

雖然自 2007 年 8 月首次報告以來,我們一直沒有聽說與 CVE-2007-4559 有關的漏洞利用報告,但它確實向外界提示了軟件供應鏈中長期被忽視的風險。

Spyder IDE Demo Video – Trellix(via)

今年早些時候,Trellix 的一位安全研究人員在調查另一個安全問題時、再次揪出了 CVE-2007-4559 。

作為一家提供擴展檢測和響應(XDR)解決方案的新企業,它由 McAfee Enterprise 和 FireEye 合併而來。

0-2.jpg

來自 Trellix 高級威脅研究團隊的 Charles McFarland 指出:

在調用 tarfile.extract() 和 tarfile.extractall() 之前,若開發者未能編寫任何安全的代碼來清理成員文件,就會導致該目錄遍歷漏洞被不良行為者利用於訪問文件系統。

該缺陷源於 Python 的 tarfile 模塊 / extract 函數中的代碼,其明確信任 TarInfo 對象中的信息,並加入了傳遞給 extract 函數的路徑和 TarInfo 對象中的名稱。

Polemarch Demo Video – Trellix(via)

披露后不到一周,Python 錯誤追蹤器上的一條消息,就稱該問題已經被關閉。更新文檔指出,官方正在修復該問題,並提醒大家始終不要通過不受信任的來源來提取檔案、否則會陷入相當大的風險。

通過分析,Trellix 研究人員發現該漏洞波及成千上萬個開源和閉源軟件項目。在隨手拉來的一批 257 個有較高可能性包含易受攻擊代碼的存儲庫中,他們手動檢查了其中 175 個,結果表明風險率高達 61% 。

2.jpg

在對其餘存儲庫開展自動檢查后,可知這一幾率增加到了 65%,表明問題的存在相當廣泛 —— 而且這還只是針對 GitHub 這一個代碼託管平台的評估結論。

Charles McFarland 補充道:“在 GitHub 幫助下,我們獲得了一個更大的數據集 —— 其中有 58 萬 8840 個獨特的存儲庫在其 Python 代碼中包含了 import tarfile”。

3.jpg

手動驗證的漏洞率高達 61%,Trellix 預估有超過 35 萬個存儲庫易受該漏洞攻擊的影響,且其中不乏幫助開發者更快完成項目的多款機器學習工具 —— 比如 GitHub Copilot 。

這款 AI 編程輔助工具依賴於來自數十萬個存儲庫的代碼,來提供便捷的“自動完成”編程體驗。但若參考代碼本身就不夠安全,問題就會在不知不覺中傳播到更多無辜的新項目中。

4.jpg

通過深入研究,Trellix 發現易受 CVE-2007-4559 漏洞攻擊的開源代碼,橫跨了眾多的行業。

如預期那樣,開發部門(Development)首當其衝,其次是人工智能(AI)/ 機器學習(ML),以及 Web、安全、管理員工具等項目。

(0)
上一篇 2022-09-22 21:37
下一篇 2022-09-22 21:38

相关推荐