CVE-2026-33112は、Microsoft SharePointに存在する重大な脆弱性です。低権限の認証済みユーザーであっても、XmlValidatorセキュリティ制御を回避することでリモートコード実行を達成できます。このほど、実際に動作する概念実証(PoC)エクスプロイトが公開されました。
この脆弱性は、CVE-2025-53770に対するMicrosoftの2度目の修正に対する新たな回避手法であり、SharePointのDataSet処理におけるデシリアライゼーション攻撃チェーンを完全に修正することの難しさが、いまなお続いていることを浮き彫りにしています。
CVE-2025-53770に対するMicrosoftの2度目の修正では、新しいTypeNameParserImplが導入され、SharePointがDataSetオブジェクトの型名を解析する方法が変更されました。これにより、以前のエクスプロイトで使われていた汎用型名による回避手法は無効化されていました。
Viettel SecurityのPoCによると、SharePointはデシリアライゼーション時にXSDスキーマセットを構築します。攻撃者は<xsd:import>および<xsd:include>要素を悪用し、攻撃者が管理するサーバー上でホストされた外部XSDスキーマを参照させることができます。
インポートされたスキーマはローカルに存在するのではなくネットワーク経由で取得されるため、XmlValidatorはこれを検査できず、検証ロジックが事実上無力化されてしまいます。これにより、本来なら阻止されるはずの悪意ある型定義が、そのチェックをすり抜けてしまう隙が生まれます。
ExcelDataSetはすでに安全でない制御としてフラグが立てられているため、そのget_DataTable()メソッドを直接呼び出すのは簡単ではありません。そこで今回のPoCは、/_vti_bin/PPS/PPSAuthoringService.asmxで公開されているMicrosoft.PerformancePoint.Scorecards.WebServer.BIMonitoringAuthoringServiceを標的にしています。
具体的には、TestConnection関数はDataSourceオブジェクトを受け取り、接続テストを実行する際に間接的にExcelDataSet.get_DataTable()をトリガーします。これにより、安全な制御の適用を完全に迂回できてしまいます。
Viettel Securityの研究者らは、これがSharePointの安全な制御チェックを回避する既知の手法の一つに過ぎないと指摘しています。関連するCVEについても、これまでのコミュニティ分析の中で別の回避経路が文書化されています。
公開されたPoCが必要とするのは、サイトメンバーレベルのアクセス権のみです。
エクスプロイトの実行に成功するとwin32calc.exeが起動し、SharePointサーバー上で任意コード実行が可能であることが確認されます。
CVE-2026-33112が特に深刻なのは、昇格された権限を一切必要としない点です。認証済みのサイトメンバーであれば誰でもトリガーできます。ネットワークベースのXSDインポート手法と組み合わせることで、悪意あるペイロードがリクエスト自体に完全には含まれないため、検知がより困難になっています。
オンプレミス版SharePointを運用している組織は、Microsoftの修正プログラムを適用することを緊急のパッチ対応として扱うべきです。それまでの間、セキュリティチームはSharePointサーバーから見慣れない外部ホストへの送信HTTPトラフィックを監視し、可能な範囲で_vti_binエンドポイントへのアクセスを制限し、PPSAuthoringService.asmxの利用ログを監査して異常なTestConnection呼び出しがないか確認することが求められます。
翻訳元: https://cyberpress.org/sharepoint-rce-vulnerablility/