Python資安警訊!eMudhra憑證瑕疵引發風險,官方急修pip與套件庫

國際憑證機構發行之中繼憑證傳出嚴重安全漏洞,導致熱門程式語言 Python 生態系面臨潛在的中間人攻擊風險。Python 官方團隊已緊急釋出修正版本,並提醒廣大開發者與學習者,單純更新作業系統憑證並不足以排除威脅,必須手動升級虛擬環境中的套件管理工具。

憑證金鑰出現瑕疵 潛在風險波及 Python 工具庫

本次資安事件源於印度憑證機構 eMudhra 旗下的 emSign 所簽發的八張中繼憑證。研究發現,這些中繼憑證在產生橢圓曲線私鑰時存在設計缺陷,私鑰數值極小,導致未授權第三方能輕易推算出私鑰內容。一旦私鑰遭推算,攻擊者便能偽造傳輸層安全性協定(TLS)數位憑證,針對包含官方套件庫 pypi.org 在內的各類連線發動中間人攻擊。

雖然主流網頁瀏覽器因具備憑證透明度(Certificate Transparency, CT)檢查機制而能自動攔截此類不合規憑證,但許多命令列工具與程式語言預設並不檢查此日誌。包含 Python 核心直譯器 CPython、套件管理工具 pip 以及 certifi 等關鍵軟體皆受影響。為此,CPython 已在內部安全模組中新增阻擋清單,主動拒絕這八張問題憑證的公鑰。

僅升級作業系統還不夠 虛擬環境需個別手動更新

針對此危機,Python 官方已發布 3.15.1、3.14.9 與 3.13.17 等更新版本,將預載的套件管理工具 pip 升級至 26.2.2,並同步更新信任憑證庫 certifi 至 2026.10.19。安全專家特別指出,pip 運作時除了參照作業系統的憑證外,還會載入自身內建的憑證清單。因此,即便作業系統已將受影響的憑證刪除,舊版 pip 仍可能繼續信任這些風險憑證。

此外,更新主系統的 Python 直譯器並不會自動同步修正既有的「虛擬環境」。使用者必須在每個已建立的專案虛擬環境中,個別將 pip、certifi 以及 uv 等套件升級至安全版本。為防止在升級傳輸過程中遭攻擊者截收與替換,專家建議安裝時應採用雜湊值比對驗證機制,以確保下載檔案的完整性與真實性。

給家長與老師

Python 是目前國高中 STEM 課程、大學程式設計入門以及 APCS 大學程式設計先修檢測的核心工具之一。許多學生與老師在進行專案開發時,習慣使用虛擬環境來安裝各類第三方套件。這次的憑證安全事件,正好提供了一個絕佳的資安實踐教育契機。

家長與老師可以引導學生了解「資訊安全」不僅僅是寫出沒有漏洞的程式碼,還包含了開發環境與軟體供應鏈的維護。建議老師在課堂上指導學生打開終端機,檢查並練習升級各自電腦中的 pip 與 certifi 套件,建立養成定期更新開發工具、維護軟體安全環境的良好習慣。

學習小教室

  • Python(程式語言):目前廣泛應用於人工智慧、資料分析與程式教學的高階程式語言,語法簡潔易懂。
  • pip(套件管理工具):Python 官方提供的軟體套件安裝程式,讓使用者能夠便利地下載並管理各類第三方程式碼庫。
  • TLS 與憑證機構(TLS & CA):傳輸層安全性協定(TLS)是保護網路傳送資料安全的加密機制;憑證機構(CA)則是負責核發數位身分證明(憑證)的公正第三方,用來確認網站伺服器的真實身分。
  • 虛擬環境(Virtual Environment):Python 用來隔離不同專案環境的機制,確保每個專案使用的套件版本不會互相干擾或衝突。

常見問題

為什麼只更新電腦的作業系統還不能解決這次的 Python 安全問題?

因為 Python 的套件管理工具 pip 內部打包了獨立的憑證清單,即便作業系統移除風險憑證,舊版 pip 仍會繼續信任它們,必須單獨升級 pip 才安全。

更新了電腦裡的 Python 版本後,原本建立的程式專案就會自動安全了嗎?

不會。既有的 Python 虛擬環境(venv)不會隨主系統更新自動升級,必須在各個虛擬環境中分別執行 pip 與相關套件的升級指令。

這次事件中受影響的套件軟體有哪些?應該升級到什麼版本?

主要受影響的包含 pip、certifi 與 uv 等工具,建議至少應將 pip 升級至 26.2.2 以上,certifi 升級至 2026.10.19 以上,以及 uv 升級至 0.13.4 以上。

返回頂端