ModSecurity WAF の脆弱性 CVE-2025-52891:DoS の可能性と未パッチの状況

Critical ModSecurity WAF Vulnerability Allows Denial of Service via Empty XML Tags

2025/07/03 CyberSecurityNews — ModSecurity Web Application Firewall (WAF) エンジンに新たに発見されたサービス拒否 (DoS) 脆弱性が、セキュリティ専門家たちの間で大きな懸念となっている。この脆弱性 CVE-2025-52891 は、空のタグを含む XML リクエストを処理することでトリガーされ、サービス中断へといたる可能性がある。影響を受けるのは mod_security2 のバージョン 2.9.8/2.9.9/2.9.10 だが、管理者により SecParseXmlIntoArgs 機能が有効化されている場合に限られる。

この、新しい SecParseXmlIntoArgs 機能は、XML ノードを ARGS にパースし、ノード・パスを ARGS_NAMES にパースすることで、セキュリティ監視を強化するよう設計されている。しかし、不正な XML を処理する際において、リスク要因となることが判明した。

オープンソースの標準的な WAF エンジン ModSecurity は、WAF 界のスイス・アーミーナイフと称され、企業/政府/ISP などの組織に加えて、世界中の商用 WAF ベンダーにも広く利用されている。

開発当初では Apache HTTP Server 向けに設計されたが、現在では Microsoft IIS や Nginx などの、各種のプラットフォームに対応している。

脆弱性 CVE-2025-52891 は、空の XML タグに対する、解析プロセスでの不適切な処理に起因する。SecParseXmlIntoArgs が “On” または “OnlyArgs” に設定された状態で、Content-Type が “application/xml” の XML コンテンツを受信すると、そこに含まれる空のタグ (例:<foo></foo>) によりセグメンテーション・フォルトが発生する。

根本的な原因は、ModSecurity が strlen() 関数を用いて、XML ノードの長さを計算するところにある。具体的に言うと、空のノードが処理される際に、strlen() が null 値を取り込むことでクラッシュが発生する。

つまり、割り当てられていないメモリ、または、割り当てが解除されたメモリに、プログラムがアクセスしようとする、典型的な null ポインタ参照の脆弱性が発生する。

脆弱性の影響と悪用の可能性

この脆弱性の悪用には特定の設定が必要なため、脅威度は中程度 (CVSS:6.5) と評価されているが、影響を受けるシステムにおいては、以下のような深刻な影響が生じる可能性がある。

  • DoS 攻撃によるサービスの完全停止
  • サーバのクラッシュと手動による再起動
  • 認証を必要としない悪用の可能性
  • インターネット上のどこからでも攻撃可能なリモート・ベクター

なお、この脆弱性が影響を及ぼす範囲は、mod_security2 のみであり、C++ で実装された libmodsecurity3 は含まれない。その理由は、libmodsecurity3 では、strlen() の問題が回避されているからである。この構造的な違いが浮き彫りにするのは、安全なプログラミング言語による、セキュア・コーディングの重要性である。

この脆弱性を発見/報告したのは、オーストラリアのメルボルン在住のサイバー・セキュリティの専門家 である Andrew Howe (@RedXanadu) だ。Howe は、OSS セキュリティ研究とペンテストへの貢献により、セキュリティ・コミュニティではよく知られた存在である。彼の研究成果は、セキュリティの教科書/学術論文/OWASP テスト・ガイドなどの専門技術書でも取り上げられている。

緩和策

システム管理者には、以下の対応策が推奨される:

  • 即時の回避策:ModSecurity の設定で SecParseXmlIntoArgs を Off に設定する。ただし、これはデフォルト設定であるため、多くの環境ではすでに Off になっている可能性がある。
  • 長期的な解決策:セキュリティ・パッチが公開され次第、すみやかに適用する。OWASP ModSecurity チームは、この脆弱性を認識しており、現在パッチを開発中である。
  • 設定の見直し:現在の ModSecurity の設定を監査し、SecParseXmlIntoArgs を使用しているシステムを特定し、その必要性を検討する。

この脆弱性は、ModSecurity が直面する、一連のセキュリティ課題の最新例である。2025 年初頭にも、ModSecurity は深刻な脆弱性に直面していたが、その中に含まれるものには、“sanitiseArg” アクションに関連する深刻な DoS 脆弱性 CVE-2025-48866 がある。その脆弱性は、過剰な数の引数の送信により、悪用される可能性があるものだった。

今回の脆弱性 CVE-2025-52891 の発見は、WAF が直面する継続的なセキュリティ課題を浮き彫りにしている。Web ベースの攻撃に対する、最前線の防御ラインとして WAF は機能するが、XML ペイロードなどの多種多様な Web トラフィックが増大するにつれて、攻撃対象領域は拡大し続けている。

2024年初頭に Trustwave から OWASP の管理下に移行した OWASP ModSecurity プロジェクトは、セキュリティ問題の解決とプラットフォームの改善における、積極的な取り組みとして評価されている。セキュリティを強化し続ける OWASP は、新たな開発プロセスを提起し、コミュニティ・エンゲージメント・イニシアチブを確立している。

ModSecurity を運用する組織に対して、セキュリティ専門家たちが推奨するのは、速やかなコンフィグの見直しと、適切な緩和策の実施である。今回の脆弱性を悪用する前提として、特定のコンフィグが必要となるため、広範な悪用には至りにくいとされる。ただし、パッチ適用やコンフィグ変更を行うまで、影響を受けるシステムは脆弱な状態を引きずることになる。

脆弱性 CVE-2025-52891 が再認識させるのは、WAF のようなセキュリティに焦点を当てたアプリケーションであっても、継続的な監視と迅速なパッチ適用が不可欠なことであり、それにより、進化する脅威に対する保護機能が維持されるという現実である。