libexpat XML parser の脆弱性 CVE-2024-8176 が FIX:懸念されるサプライチェーン攻撃

Stack Overflow Alert! XML Flaw in libexpat Threatens Widespread Software

2025/05/12 SecurityOnline — libexpat XML 解析ライブラリに存在する、スタック・オーバーフローの脆弱性 CVE-2024-8176 (CVSS:7.5) に関する情報を、CERT/CC が発表した。影響を受ける環境での libexpat ライブラリの導入方法によっては、この脆弱性を悪用する攻撃者は、メモリ破損やアプリケーション・クラッシュなどを引き起こす可能性を手にする。

libexpat は、C 言語で記述された OSS のストリーム指向 XML パーサーである。したがって、多様なソフトウェア・エコシステムにおいて、特に大規模な XML ファイルを効率的に処理する必要があるシステムで広く使用されている

前述のとおり、libexpat は多様な企業の多様なソフトウェアで使用されている。小さな組み込みシステムから、大規模なエンタープライズ・ソフトウェアにいたるまでの、様々なプラットフォームで広く使用されるため、libexpat の脆弱性は広範囲に影響を及ぼす可能性がある。

この脆弱性の根本原因は、libexpat が再帰的なエンティティ展開を処理する方法にある。細工された XML ファイルの解析を要求する攻撃者は、エンティティ参照を深くネストすることで無制限の再帰を引き起こし、スタック・オーバーフローを引き起こす可能性を手にする。

CERT/CC は、「スタック・オーバーフローの脆弱性が存在する。深くネストされたエンティティ参照を持つ XML ドキュメントを解析すると、libexpat が無限に再帰を繰り返す可能性がある」と説明している

この無制限の再帰は、サービス拒否 (DoS) 攻撃につながり、特定の条件下ではメモリ破損を引き起こし、より深刻な攻撃を引き起こす可能性を生じる。

パッチを適用していない libexpat を用いて、XML を解析するソフトウェアはすべて、この脆弱性の悪用に遭遇する可能性がある。なお、攻撃者は昇格した権限を必要としない。libexpat を介して、悪意の XML ファイルをシステムに渡すだけで攻撃を開始できる。

CERT/CC は、「攻撃者は、プログラムに XML ドキュメントを提供するだけで、DoS 攻撃やメモリ破損攻撃を引き起こす可能性を手にする」と警告している。

libexpat は 数多くの OSS プロジェクトや商用プロジェクトに広く統合されているため、サプライチェーン・リスクが大きな懸念事項となっている。

この脆弱性に対する修正は、libexpat バージョン 2.7.0 で提供されている。開発者およびメンテナーたちに強く推奨されるのは、速やかなアップデートにより、このリスクを軽減することだ。さらに、公式 GitHub Issue で提供されている、PoC ペイロードにより保護機能を検証することも推奨される。

この脆弱性は、Google Project Zero の Jann Horn により、適切なかたちで開示された。

このブログでは初登場の libexpat ですが、Wikipedia によると、Apache HTTP Server/Mozilla/Perl/Python/PHP などの OSS プロジェクトで採用されているとのことです。文中にもある通り、今回の脆弱性は、広範囲に影響を及ぼす可能性があります。開発者の方々は、十分にご注意ください。よろしければ、カテゴリ _OpenSource も、ご参照ください。