新供應(yīng)鏈安全威脅,下載超四千萬(wàn)的 Python 庫(kù)曝嚴(yán)重缺陷
Ghsa-wm×h-p×cx-9w24漏洞概述
近日,廣泛使用的Python JSON Logger庫(kù)中披露的一個(gè)漏洞通過(guò)依賴鏈缺陷,暴露了約4300萬(wàn)個(gè)安裝面臨潛在遠(yuǎn)程代碼執(zhí)行(RCE)攻擊的風(fēng)險(xiǎn)。該漏洞編號(hào)為GHSA-wmxh-pxcx-9w24,CVSS v3嚴(yán)重程度評(píng)分為8.8/10,源于一個(gè)未注冊(cè)的依賴項(xiàng)("msgspec-python313-pre"),攻擊者可能利用它劫持軟件包安裝。
安全研究員Omnigodz發(fā)現(xiàn),攻擊者可能利用此漏洞在使用受影響版本(3.2.0和3.2.1)日志工具的系統(tǒng)中執(zhí)行任意代碼。維護(hù)者在研究員通過(guò)GitHub安全咨詢程序負(fù)責(zé)任地披露問(wèn)題后,發(fā)布了修復(fù)版本3.3.0。

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




























