【資安通報】Apache Parquet Java 漏洞(CVE-2025-46762)可被利用進行遠端程式碼執行攻擊

Photo Credit: gbhackers.

近期發現 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 處理大量資料的企業與金融單位而言。建議所有企業資訊團隊即刻審查是否使用受影響版本,並採取修補或風險控制措施,以確保資料處理流程的完整性與安全性。