Veeam Backup BinaryFormatter Flaw Enables Remote Code Execution
2026/07/06 gbhackers — Veeam が公表したのは、Backup & Replication に影響を及ぼすデシリアライゼーションの脆弱性 CVE-2026-44963 に関する情報である。この脆弱性を悪用する認証済みのドメイン・ユーザーは、BinaryFormatter の処理における弱点を突くことで、バックアップ・サーバ上でのリモート・コード実行を達成する。SecureLayer7 Labs が詳述する内容は、Veeam の .NET Remoting で脆弱性が相次いで発見されているという、懸念すべき傾向の一部である。不十分なブラックリスト・ベースの保護では、安全でないデシリアライゼーション悪用を効果的に防止できない。

Veeam Backup の脆弱性
Veeam Backup & Replication (VBR) は、仮想/物理/クラウドのワークロードにまたがり、バックアップ/レプリケーション/災害復旧を管理するためのものであり、エンタープライズ環境で広く利用されている。
このバックアップ・サーバは、認証情報の保存/バックアップ・ジョブの管理/インフラストラクチャの調整を担う中央オーケストレーターとして機能する。その重要な役割から、ランサムウェア攻撃者はバックアップ・サーバを標的とすることが多く、悪意のペイロードを展開した後に、バックアップの削除/改竄を引き起こしている。
この脆弱性は、Veeam Backup Service (Veeam.Backup.Service.exe) に存在し、TCP ポート 8000 の “/trigger” パスで、.NET Remoting HTTP エンドポイントを露出するものだ。
FilterByBlacklist モードで設定された、RestrictedSerializationBinder を備えるカスタム CProxyBinaryFormatter でラップされた BinaryFormatter のデシリアライゼーションにより、このサービスは受信リクエストを処理する。
このメカニズムは、タイプに対する厳格な安全性を確保せず、既知の危険なクラスのみをブロックしている。したがって、それ以外のすべてのシリアライズ可能なタイプが暗黙的に信頼されるため、構造的に安全ではない設計となっている。
この設計上の欠陥が、脆弱性 CVE-2026-44963 により悪用される。ブロックリストに未記載の [Serializable] クラスの悪用によりブロックリストが回避され、デシリアライゼーション中のコード実行に至る恐れがある。

この攻撃において必要とされるのは、低権限のドメイン・ユーザーとしての認証のみである。認可チェックは WindowsBuiltInRole.User への所属だけを検証するため、ドメイン参加システムでは、すべてのドメイン・ユーザーが、このロールに含まれてしまう。この権限分離の欠如により、攻撃者は管理者権限を必要とせずに、脆弱なデシリアライゼーション・シンクへ到達できる。
攻撃チェーンは、3 段階の WCF インタラクション・シーケンスで構成される。最初に、RestoreJobSessionsDbScopeCreateSession がセッション・コンテキストを確立し、続いて OpenVbRestoreSession がデシリアライゼーション環境を初期化する。最後に ExecuteStartAgentSessionTrafficProxy が悪意の BinaryFormatter ペイロードを送信し、CProxyBinaryFormatter の Deserialize() による処理が行われる。
このペイロードは、System.Data.DataSet のデシリアライゼーションを起点とするガジェット・チェーンを悪用しており、ReadXmlSchema/ReadXml メソッドを介して攻撃者が制御する XML を処理する。
エクスプロイトの中核は、DataSet のデシリアライゼーション・コンストラクタである。攻撃者が提供する、細工された “xsi:type” 参照などの XML スキーマを解析させることで、任意の .NET クラスである System.Windows.Data.ObjectDataProvider をインスタンス化できる。
ObjectInstance/MethodName/MethodParameters などのプロパティを設定する攻撃者は、Process.Start を呼び出すことで、通常は SYSTEM 権限で実行される Veeam Backup Service アカウントのコンテキストで任意のコマンドを実行できる。
この問題の根本的な原因は、Veeam が BinaryFormatter に依存している点にある。Microsoft は、BinaryFormatter を安全ではないものと見なし、.NET 5 以降で廃止している。
ブラックリスト方式は、コード実行の脆弱性を引き起こす DataSet 派生型を含め、すべてのガジェット・クラスを網羅できないという問題を抱えている。これまでの脆弱性 CVE-2024-40711/CVE-2025-23120 においても、この欠陥がブラックリストの漏れを突く形で悪用されてきた。
脆弱性 CVE-2026-44963 を修正する、Veeam のバージョン 12.3.2.4854 (KB4696) のパッチ分析により判明したのは、組み込みリソース BinaryFormatter.blacklist.txt に、新たに悪用されたガジェット・クラスを追加している点である。BinaryFormatter を排除するためのアーキテクチャ変更やデシリアライゼーション・パイプラインの再設計は実施されていないため、依然として広範な攻撃対象領域が残されている。
その一方で、Veeam バージョン 13.x では、BinaryFormatter ベースのパイプラインが削除されているため、この種の脆弱性の影響を受けない。
セキュリティ研究者たちが強調するのは、この脆弱性が CWE-502 (信頼できないデータのデシリアライゼーション) に該当する点と、ブラックリスト・ベースの保護に依存するリスクである。
Veeam バージョン 12.x を使用している組織に対して強く推奨されるのは、直ちにパッチを適用し、TCP ポート 8000 へのネットワーク・アクセスを制限することである。また、ドメイン・ベースの認証への露出を抑えるために、バックアップ・サーバをワークグループ・モードで展開することも検討すべきである。
訳者後書:今回の脆弱性の原因は、Veeam Backup & Replication に使われている BinaryFormatter という仕組みにあります。これはデータを復元する際に、あらかじめ禁止されたクラスだけを阻止するブラックリスト方式を採用していました。しかし、この方式では登録漏れがある危険なクラスを完全に防ぎきれません。実際に CVE-2026-44963 (CWE-502) では、未登録のクラスを悪用して、管理者権限がなくても外部から自由にコマンドが実行できてしまいます。このように安全ではない古いデータ復元手法への依存と、不完全な禁止リストによる設計が、問題の根本的な原因となっています。ご利用のチームは、ご注意ください。よろしければ、Veeam での検索結果も、ご参照ください。

You must be logged in to post a comment.