資安研究人員指出,惡意試算表能在 LibreOffice 和 Apache OpenOffice 中,在檔案開啟時就執行攻擊者提供的程式碼,且不會像執行巨集(macro)前一樣出現任何警告。

此攻擊僅在程式啟用 Java 支援時有效。目前僅為概念驗證(proof of concept),尚未有在真實攻擊中使用的報告。

LibreOffice 已於 10 月 5 日發布的更新中修補了此漏洞,追蹤代碼為 CVE-2026-63277。該公司建議用戶更新至 26.2.5 或 26.8.0 版本。在此之前的版本均受影響。

Apache OpenOffice 尚未修補對應的漏洞,追蹤代碼為 CVE-2026-59265。所有版本,包括其目前的 4.1.16 版本,均受影響。該專案表示,預計在仍在測試中的 4.1.17 版本中修復。

在此之前,Apache OpenOffice 用戶可透過在程式設定中關閉 Java,或避免開啟他們不信任的試算表來阻擋此攻擊。

此攻擊結合了各自獨立運作正常的功能。LibreOffice 或 Apache OpenOffice Calc 試算表可以包含一個「資料庫範圍」(database range),這是一組儲存格,可以從外部來源提取資料並自行重新整理。該外部來源可以是單獨的資料庫檔案(稱為 ODB),其名稱由寫入試算表的網址指定。

當試算表開啟時,該範圍會重新整理,程式會從該網址下載 ODB。ODB 可以指定一個 Java 資料庫驅動程式(JDBC driver),並指向該驅動程式碼的位置,該位置可以是一個 JAR 檔案(一個 Java 程式碼的集合),或位於遠端伺服器上。程式隨後會下載 JAR 並啟動驅動程式,也就是攻擊者的程式碼,在程式內部執行。

這些功能本身都是正常的。研究人員表示,安全問題在於,這些功能結合在一起,可以在不要求使用者信任文件的情況下達成程式碼執行,而這正是程式在執行巨集前會要求使用者信任的步驟。

在概念驗證中,該驅動程式僅開啟了計算機應用程式,這是一個無害的替代方案,但同樣的路徑可以執行攻擊者選擇的任何 Java 程式碼。研究人員在 Windows 和 Linux 上測試了此攻擊,並表示此攻擊不受單一作業系統的限制。

在他們的演示中,惡意檔案為了方便起見,放置在同一台機器上。研究人員表示,真實的攻擊會將資料庫檔案和程式碼放置在攻擊者控制的伺服器上。

LibreOffice 的漏洞是由 V12 安全團隊的 Rick de Jager 以及 Codean Labs 的 Thomas Rinsma 和 Edoardo Geraci 獨立報告的。Apache 將 Codean Labs 歸功於 OpenOffice 中對應的漏洞。V12 團隊發布了針對這兩個程式的概念驗證,而 Collabora Productivity 的 Caolán McNamara 則編寫了 LibreOffice 的修補程式。

The Hacker News 已聯繫開發 LibreOffice 的 The Document Foundation 和 Apache OpenOffice 專案以取得評論。

LibreOffice 與 OpenOffice 漏洞允許惡意試算表在無警告下執行程式碼LibreOffice 與 OpenOffice 漏洞允許惡意試算表在無警告下執行程式碼LibreOffice 與 OpenOffice 漏洞允許惡意試算表在無警告下執行程式碼LibreOffice 與 OpenOffice 漏洞允許惡意試算表在無警告下執行程式碼