老牌Python解析庫PLY爆重大RCE漏洞,未記載picklefile參數恐成攻擊入口

此篇文章聚焦在一個看似冷門、實則可能牽動整個部署安全的供應鏈風險:老牌Python語言解析工具庫PLY(Python Lex-Yacc)被揭露存在重大遠端程式碼執行漏洞CVE-2025-56005,CVSS 3.1基礎評分高達9.8,被列為Critical等級。文章特別強調,這次並不是常見的輸入檢查疏漏或邊界條件錯誤,而是源自PLY內部一個「文件上看不到」的設計細節,導致在特定使用情境下,攻擊者可能把原本用於提升效能的機制,反過來變成入侵入口。若你的系統曾用PLY來做程式語言處理、設定檔解析、或後端服務中的語法分析,文章要讀者先意識到:風險不一定發生在你以為的「資料進來以後」,而可能藏在程式啟動與快取載入的早期階段。

此篇文章把關鍵指向yacc()函式支援的一個未於官方文件記載的參數picklefile,這個參數原本用來指定解析表的快取檔案,讓系統不用每次啟動都重新建表,但PLY在實作上會直接使用Python內建的pickle機制去載入該檔案,且「沒有檢查檔案來源是否可信」。由於pickle天生就不是為安全而設計,只要攻擊者能讓程式讀到一個被刻意製作或遭竄改的pickle內容,就可能在反序列化當下直接執行惡意程式碼。文章同時提到,這類問題也被NVD歸類為CWE-502「不可信資料反序列化」,屬於資安事故裡常見但一出事就會很致命的弱點類型,因為它繞過了許多應用層對輸入資料的直覺防線,把「讀檔」變成「執行」。

此篇文章最後把焦點拉回到更棘手的現實:受影響版本已知包含PLY 3.11,而專案本身已停止維護,PyPI上最新版本仍停留在2018年發布的3.11版,原作者David Beazley也公開表示不再維護。文章提醒漏洞的危險性在於,攻擊不必等到程式開始處理業務資料,只要在啟動時載入被動手腳的快取檔,就可能被植入後門,進一步影響部署環境與自動化流程。基於這個前提,文章呼籲仍在使用PLY的團隊應儘速盤點程式碼中是否使用picklefile相關功能,避免載入來源不明的快取檔,並重新檢視快取檔存放位置與權限設定;若PLY仍是關鍵相依套件,也要務實評估替代仍持續維護的解析函式庫,或自行接手維護必要程式碼,否則風險會隨著時間與環境變動持續擴大。

閱讀完整文章:https://www.ithome.com.tw/news/173700

Related posts