概要
LibreOffice(CVE-2026-63277)とApache OpenOffice(CVE-2026-59265)のCalcに、悪意あるスプレッドシートを開くだけでマクロ実行の警告を一切表示せずに任意のJavaコードが実行されてしまう脆弱性が発見された。発見したのはV12セキュリティチームのRick de Jager氏と、Codean LabsのThomas Rinsma氏、Edoardo Geraci氏。LibreOfficeは10月5日にリリースされたバージョン26.2.5および26.8.0で修正済みだが、Apache OpenOfficeは本稿執筆時点で未修正で、修正版となる4.1.17はまだテスト中の状態にある。影響を受けるのはLibreOfficeの26.2.5/26.8.0より前の全バージョンと、OpenOfficeの4.1.16までの全バージョンだ。
技術的な詳細
今回の脆弱性が巧妙なのは、単一のバグではなく、いずれも正当な機能同士を組み合わせることで警告なしのコード実行を実現している点にある。研究者らは「これらはそれぞれ正常な機能だ。問題は、これらを組み合わせることで、ユーザーに文書を信頼するか尋ねることなくコード実行に到達してしまうことにある」と説明している。具体的な手順は次の通りだ。まずスプレッドシートに外部ソースから自動的にデータを更新する「データベース範囲」を設定し、そのデータベース範囲がWebアドレス経由でODB(データベース定義)ファイルを参照するようにする。文書を開くとこのODBファイルが自動的にダウンロードされ、そこにJDBCデータベースドライバの指定が含まれているため、該当するJARファイルがダウンロードされて実行される。この一連の流れにはマクロ実行時のような「このファイルを信頼しますか」という確認ダイアログが一度も現れない。修正はCollabora ProductivityのCaolán McNamara氏によるもので、クレジットされている。
対応状況と回避策
LibreOffice側は10月5日の更新で既に修正されており、最新版へのアップデートが推奨される。一方のApache OpenOfficeは本稿時点で修正版が存在せず、ユーザーは設定でJavaランタイムを無効化するか、信頼できないスプレッドシートを開かないことが暫定的な回避策として挙げられている。今回の脆弱性には正式なCVSSスコアは付与されておらず、概念実証(PoC)としての報告であり、実際の攻撃への利用例は確認されていないという。ただしオフィススイートのデータベース連携やマクロ機能を悪用した攻撃は過去にも繰り返し報告されており、今後同様の手法を使った実際の攻撃が出現する可能性は否定できない。企業や組織では、メール添付などで受け取ったスプレッドシートファイルの取り扱いに注意し、特にOpenOfficeを使用している環境ではJavaの無効化を検討すべきだろう。