脅威リサーチ

フォーティネットのFortiGuard LabsがdotCMSに複数の脆弱性を発見

投稿者 Thanh Nguyen Nguyen | 2022年12月23日

2022年6月、フォーティネットのFortiGuard LabsがdotCMSの4つの脆弱性を発見して報告しました。dotCMSは、Javaテクノロジーに基づいたオープンソースのハイブリッドCMSで、ヘッドレスCMSの柔軟性と従来のコンテンツオーサリングの効率性を併せ持っています。

脆弱性が発見されたのは、バージョン22.05とそれ以前のバージョンです。本ブログの投稿時点では、発見された問題はすでにベンダーによって修正され、更新が発行されています。FortiGuard Labsは、ベンダーの迅速な対応とタイムリーな修正に感謝いたします。

発見された脆弱性の概要を以下で説明します。

  1. [FG-VD-22-062] Multiple Cross-Site Scripting in Admin portal
  2. [FG-VD-22-063] XSSFilter mechanism bypass using urls with semi-colons
  3. [FG-VD-22-076] Server-side Request Forgery redirection bypass in TempFileAPI
  4. [FG-VD-22-077] Denial-of-Service by overloading temp file import

脆弱性の詳細

FG-VD-22-062 管理ポータルに複数のクロスサイトスクリプティング脆弱性

管理ポータル内で、クロスサイトスクリプティング(XSS)に対して脆弱なエンドポイントが複数見つかりました。ただし、dotCMSはこの種の脆弱性の悪用を防ぐXSSフィルターメカニズムを備えているため、このようなXSSを無害化することができます。このデフォルトのメカニズムはXSS_PROTECTION_ENABLED=falseオプションを使ってオフにすることもできますが、XSSフィルターメカニズムはデフォルトでオンになっているため、ベンダーはこのXSS脆弱性を修正不要の問題であると結論づけました。

FG-VD-22-063 セミコロンを含むURLを利用したXSSフィルターメカニズムのバイパス

XSSフィルターは、管理ポータル内のXSS脆弱性とクロスサイトリクエストフォージェリ(CSRF)脆弱性を最小限に抑えることを目的とした入力サニタイザーです。dotCMSは、管理ディレクトリ(/html、/dotAdminなど)の下にあるすべてのファイルについて、ファイルへの直接アクセスを内部でブロックします。しかし、管理ディレクトリ自体へのアクセスは、HTTPリクエスト内に有効なRefererヘッダーまたはOriginヘッダーが指定されていれば許可されます。フォーティネットでは、以前のブログで説明したように、マトリックスパラメーターを使ってXSSフィルターをバイパスする方法の実証に成功しました。攻撃者はデフォルト構成の環境に対してこの方法でXSS攻撃を開始し、重大な侵害につなげていきます。

FG-VD-22-076 TempFileAPIでのサーバーサイドリクエストフォージェリによるリダイレクトバイパス

dotCMSは2021年12月14日に、dotCMSのコアTempFileAPIに存在するサーバーサイドリクエストフォージェリ(SSRF)脆弱性、SI-60に対する修正を発行しました。ただし、この修正は不完全であるため、フォーティネットはリダイレクトテクニックを使ってバイパスに成功しました。

FG-VD-22-077 一時ファイルのインポートの過負荷によるサービス拒否(DoS)

TempFileAPIのもう1つの問題は、TempFileAPIがリモートURLにアクセスしてそのコンテンツをダウンロードしようとしたときに明らかになります。TempFileAPIに対して、複数のリクエストを一度に使用して大きなファイルにアクセスするように指示すると、メモリの枯渇やサービス拒否(DoS)が発生します。

FortiPenTestによるdotCMSのゼロデイ / Nデイ脆弱性のテスト

ここでは、FortiPenTestのお客様がdotCMSのインスタンスに脆弱性があるかどうかを、FortiPenTestを使ってどのように検知できるかを説明します。FortiPenTestは、フォーティネットが開発したクラウドネイティブなペネトレーションテストツールであり、OWASP Top 10リストなどのアプリケーション脆弱性の一般的基準に基づいています。FortiPenTestは、フォーティネットの広範にわたるFortiGuardリサーチの結果とナレッジベースを使用して対象システムのセキュリティの脆弱性をテストするように設計されています。

FortiPenTestが使用するエクスプロイトエンジンによって、セキュリティ担当者は対象のネットワーク上に存在するアプリケーションの潜在的な脆弱性を調査し、脆弱性が見つかったアプリケーションのエクスプロイトの可能性を判断することができます。フォーティネットのリサーチャーはこのツールを使用して以下のシグネチャを作成し、dotCMSの脆弱性を特定しました。

  • cve-2022-37431-dotcms-multiple-cross-site-scripting.fse
  • cve-2022-35740-dotcms-xssfilter-bypass.fse
  • cve-2022-37033-dotcms-server-side-request-forgery.fse
  • cve-2022-37034-dotcms-denial-of-service.fse
図1:FortiPenTestがdotCMSの脆弱性を検知

FortiPenTestの機能とメリットについての詳細は、こちらの製品ページをご確認ください。

フォーティネットのソリューション

FortiGuard Labsは、このレポートで言及したすべての脆弱性をカバーするために、以下のIPSシグネチャを発行しました。

  • dotCMS.Core.XSSFilter.Bypass
  • dotCMS.Portal.State.XSS        
  • dotCMS.Portal.Frame.XSS      
  • dotCMS.Portal.Structure.XSS 
  • dotCMS.Portal.Lang.XSS        
  • dotCMS.Portal.Index.XSS       
  • dotCMS.Portal.TestQuery.XSS

また、ベンダーからの最新のパッチを適用することを強くお勧めします(https://www.dotcms.com/docs/latest/current-releases