新供應鏈安全威脅,下載超四千萬的 Python 庫曝嚴重缺陷
Ghsa-wm×h-p×cx-9w24漏洞概述
近日,廣泛使用的Python JSON Logger庫中披露的一個漏洞通過依賴鏈缺陷,暴露了約4300萬個安裝面臨潛在遠程代碼執行(RCE)攻擊的風險。該漏洞編號為GHSA-wmxh-pxcx-9w24,CVSS v3嚴重程度評分為8.8/10,源于一個未注冊的依賴項("msgspec-python313-pre"),攻擊者可能利用它劫持軟件包安裝。
安全研究員Omnigodz發現,攻擊者可能利用此漏洞在使用受影響版本(3.2.0和3.2.1)日志工具的系統中執行任意代碼。維護者在研究員通過GitHub安全咨詢程序負責任地披露問題后,發布了修復版本3.3.0。
依賴混淆攻擊的典型案例
這一漏洞是典型的依賴混淆攻擊案例,攻擊者利用軟件供應鏈中的漏洞進行攻擊。Python JSON Logger的pyproject.toml配置文件包含一個名為msgspec-python313-pre的可選開發依賴項,用于Python 3.13兼容性。然而,原始維護者刪除后,該軟件包名稱在PyPI上未注冊,形成了命名空間真空。
Omnigodz的概念驗證研究表明,任何PyPI用戶都可以聲明這個廢棄的軟件包名稱并發布惡意代碼。當開發者在Python 3.13環境中通過pip install python-json-logger[dev]安裝日志工具的開發依賴項時,如果公共存儲庫中存在攻擊者控制的msgspec-python313-pre,則包管理器會自動提取該惡意代碼。
盡管根據PyPI的BigQuery指標,Python JSON Logger每月下載量超過4600萬次,但這種攻擊需要特定的條件:受害者使用Python 3.13并啟用開發依賴項,這在CI/CD管道和開發者工作站中是常見配置。
值得注意的是,盡管一個月前項目源代碼中已經提交了一個緩解提交(1ce81a3)刪除了有問題的依賴項,但漏洞仍然存在。由于此修復未包含在官方的PyPI版本中,直到版本3.3.0,所有使用標準軟件包管理工作流的安裝仍然容易受到攻擊。
緩解措施
Python JSON Logger維護者通過兩項并行措施解決了該漏洞:
- 發布了v3.3.0,完全消除了msgspec-python313-pre依賴項;
- 與Omnigodz協調轉移了爭議軟件包名稱的所有權,有效防止了命名空間劫持。
安全團隊建議立即使用pip install --upgrade python-json-logger==3.3.0升級至v3.3.0。無法立即更新的組織應審核其Python環境。
Omnigodz在其會議論文中指出:"開發人員必須將依賴項視為攻擊面。特別是那些可選的依賴項,盡管具有完整的執行權限,但它們經常逃脫安全掃描器的檢測。"
據ESET的2025年威脅報告顯示,供應鏈攻擊正以每年78%的速度增長。該漏洞突出了Python生態系統在平衡可用性和安全性方面面臨的持續挑戰。盡管尚未有任何數據泄露事件與此具體漏洞相關聯,但其發現促使主要開源社區重新審視依賴管理實踐。