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