
近期發現 Apache Parquet Java 存在一項高風險安全漏洞(CVE-2025-46762),可被攻擊者利用來進行遠端程式碼執行(Remote Code Execution, RCE),影響層面廣泛。該漏洞由 Apache Parquet 開發貢獻者吳剛(Gang Wu)於 parquet-avro 模組中發現,並於 2025 年 5 月 2 日正式公開。
漏洞概述
此漏洞影響 Apache Parquet Java 1.15.1 及其以前的所有版本。攻擊者可將惡意程式碼嵌入 Parquet 檔案中的 Avro schema 中,當應用程式解析該檔案時,便可能觸發程式碼執行。該行為不需任何使用者互動,且一旦成功執行,將導致系統完全淪陷,具高度危險性。
技術分析:CVE-2025-46762
本次漏洞核心問題出在 parquet-avro 模組的結構(schema)解析流程不安全。具體而言,Avro schema 欄位可被植入惡意程式碼,而當 Java 系統載入該檔案時,若採用了 specific 或 reflect 資料模型(為預設常用設定),將可能自動執行這段程式碼,導致 RCE。
雖然使用 generic 資料模型的系統不受此漏洞影響,但值得注意的是,Java 預設信任的套件(如 java.util)仍可能成為攻擊入口,使漏洞有機可乘。
影響範圍
- 所有 Apache Parquet Java 1.15.1 以下版本
- 使用 parquet-avro 的 大數據平台,例如:
- Apache Spark
- Apache Hadoop
- Apache Flink
- 依賴 Avro schema 處理的 資料處理流程與 ETL 管線
任何從外部來源讀取 Parquet 檔案的系統若未進行版本修補,皆有可能在反序列化階段被植入惡意程式碼並觸發 RCE。
緩解建議(Mitigation)
為降低風險並阻止攻擊路徑,建議採取以下資安行動:
方案一:立即升級至 Apache Parquet Java 1.15.2
此版本已修復信任套件範圍管理不當問題,可有效阻止攻擊者透過 Avro schema 注入程式碼。
方案二:暫時修補(適用於尚無法升級者)
請將 JVM 啟動參數設為:
bash
複製編輯
-Dorg.apache.parquet.avro.SERIALIZABLE_PACKAGES=””
此設定將清空可被序列化執行的 Java 套件清單,防止惡意程式碼載入執行。
加強策略建議
- 優先採用 generic Avro model:此模型不受漏洞影響,應列為資料處理預設選項。
- 封鎖外部不明來源的 Parquet 檔案,並進行嚴格的驗證流程。
- 實作 Schema 驗證與 Sandboxing,避免在生產環境直接執行未驗證的 Avro 結構。
資安風險與威脅評估
未修補的系統將暴露於以下風險:
- 遠端程式碼執行(RCE):攻擊者可植入具後門能力的 Parquet 檔進行惡意操作。
- 供應鏈攻擊:惡意檔案可能透過數據流程進入後端系統,引發連鎖性失控。
- 資料外洩與存取權限提升:攻擊成功後,可能導致敏感資料暴露或被竊取。
- 業務營運中斷:一旦後端伺服器遭控制,將可能導致資料處理中斷或毀損。
資安專家總結
CVE-2025-46762 是一起極具危害性的漏洞,特別是對於使用 Apache Parquet 處理大量資料的企業與金融單位而言。建議所有企業資訊團隊即刻審查是否使用受影響版本,並採取修補或風險控制措施,以確保資料處理流程的完整性與安全性。