cat posts/%e4%bb%8a%e9%80%b1%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3%e8%80%83%e5%af%9f%ef%bc%9a%e8%aa%8d%e8%a8%bc%e5%89%8d%e3%81%ae%e3%83%a1%e3%83%a2%e3%83%aa%e7%a0%b4%e5%a3%8a%e3%81%a7.md

今週のセキュリティ考察:認証前のメモリ破壊で制御を奪われた——Citrix NetScaler ADC/Gateway(CVE-2026-88772)

企業の VPN やロードバランサー(通信の振り分け装置)として使われる Citrix NetScaler ADC / Gateway に、ログインせずに外部からプログラムを実行できる脆弱性 CVE-2026-88772(CVSS 9.5)が見つかり、すでに攻撃に使われている[1][3][5]。

PART 1解説

3行でわかる要点

  • ログイン前に攻撃できる:DTLS(UDP で暗号化通信をする仕組み)の処理にメモリがあふれる欠陥があり、認証の手前で攻撃が成立する[2][5]。
  • 最高権限で乗っ取られる:あふれたデータで処理の流れを奪い、root 権限で任意のコードを動かせることを watchTowr が示した[4]。
  • 侵入後の動き:一緒に悪用された CVE-2026-88771 とあわせて、PHP のウェブシェルの設置、認証情報の窃取、内部ネットワークの偵察や横移動が報告されている[6]。

前提:NetScaler は何をする機器か

NetScaler ADC は、Web サイトへの通信を複数のサーバーに振り分けたり(ロードバランサー)、暗号化通信の処理を肩代わりしたりする機器です。NetScaler Gateway は、社外から社内に入るためのリモートアクセス(VPN)の入口として使われます。

どちらも社内ネットワークとインターネットの境目に置かれ、外部から直接届く位置にあります。そのため、ここに認証なしで悪用できる脆弱性があると、インターネット上の誰もが攻撃者になりえます。IT パスポートの用語でいえば、境界防御を担う装置にあたります。

まず押さえる用語

用語ひとことでもっと詳しく
CVE脆弱性ごとに付けられる世界共通の番号。「CVE-年-番号」の形で、製品や記事をまたいで同じ問題を指せる。IPA「共通脆弱性識別子CVE概説」
CVSS脆弱性の深刻度を 0.0〜10.0 で表す指標。9.0 以上は最も深刻な「緊急(Critical)」。IPA「共通脆弱性評価システムCVSS概説」
バッファオーバーフロー用意したメモリ領域(バッファ)より大きなデータを書き込み、隣の領域を壊してしまう欠陥。プログラムの乗っ取りに使われる。CWE-120(MITRE)
DTLSUDP の通信を TLS と同じように暗号化する仕組み。VPN の高速な通信などに使われる。RFC 6347(IETF)
ウェブシェルサーバーに置かれ、ブラウザ経由で攻撃者がコマンドを実行できるようにする不正なプログラム。MITRE ATT&CK T1505.003

本来の仕組みと、どこが破られたか

DTLS の断片を組み立てる処理の正常時と攻撃時正常時断片を受信大きさを確認バッファに格納通信を開始攻撃時細工した断片を大量送信大きさの確認バッファがあふれるroot で任意コード実行
図1 DTLS の断片を組み立てるときにサイズの確認が抜けていた(watchTowr の解析をもとに作図)

DTLS では、大きなメッセージを小さな「断片」に分けて送り、受け取った側で1つに組み立て直します。NetScaler は断片の見出しにある「この断片は1バイト」という申告をそのまま信じていましたが、実際にはずっと大きなデータを受け取って保持していました[4][5]。

組み立て先のバッファは 35,840 バイトしかないのに、組み立てが終わる頃には約 174KB のデータが積み上がり、次のデータが入るかを確かめないまま書き込むため、バッファの外まであふれます[5]。図1の赤い破線が、この「大きさの確認」が抜けていた箇所です。

攻撃の流れ

sequenceDiagram
  autonumber
  participant A as 攻撃者
  participant N as NetScaler
  participant I as 内部ネットワーク
  A->>N: 細工したDTLSの断片を大量に送信(認証不要)
  N->>N: 組み立て時にバッファがあふれる
  N->>N: root権限で任意のコードを実行
  A->>N: PHPのウェブシェルを設置
  N->>I: 認証情報の窃取・偵察・横移動
  • 1〜3:ログインの前に届く通信だけで、メモリ破壊からコード実行まで進む。watchTowr は mprotect() を使って実行防止の仕組み(NX)を回避できることも示した[4][5]。
  • 4〜5:Mandiant の調査では、ウェブシェルを .css などの無害なファイルに見せかけて置き、Web サーバーの設定を書き換えて PHP として動くようにしていた[6]。
  • GreyNoise は、Citrix が公表する3日前から悪用の試みを観測していた[6]。

なぜ境界の機器は繰り返し狙われるのか(考察)

  • NetScaler のような機器はインターネットに直接公開されるのが前提で、攻撃者から最も手が届きやすい。
  • VPN やロードバランサーは「止められない」と判断されやすく、パッチが後回しになりがち。ログイン前に悪用できる脆弱性は、その遅れをそのまま突ける。
  • 境界の機器は内部への通信を許された「信頼された中継点」なので、突破されたあとの封じ込めを設計しておかないと、横移動の起点になる。
  • 今回は公表の前から悪用が始まっていた[6]。「公表されたら当てる」だけでは間に合わない場面がある。

いま確認すること

  • 【NetScaler を使っている】Citrix のセキュリティ情報で対象バージョンを確かめ、更新する。ADC / Gateway は 14.1-73.37、13.1-64.23 より前などが対象[1][2]。
  • 【NetScaler を使っている】Web サーバーの設定が書き換えられていないか、.css や .sig などに見せかけた不審なファイルがないかを確かめる[6]。
  • 【NetScaler を使っている】パッチを当てる前の期間のアクセスログを遡り、不審な通信がないか確かめる。
  • 【全員】VPN・ロードバランサーなど境界の機器のバージョンを棚卸しし、「止めたくないので後回し」にしている機器がないか確かめる。
  • 【全員】境界を突破されたあとの横移動を防ぐ設計(ネットワークの分割・最小権限)になっているか見直す。

出典・参考リンク

一次情報

  1. Citrix セキュリティ情報 CTX697096
  2. NVD — CVE-2026-88772
  3. CISA Known Exploited Vulnerabilities Catalog

報道・解説

  1. watchTowr Labs — NetScaler DTLS pre-auth memory overflow の解析
  2. The Hacker News — Citrix NetScaler CVE-2026-88772 Exploit Details
  3. BleepingComputer — Hackers exploit Citrix NetScaler zero-day to deploy web shells

PART 2問題(情報処理安全確保支援士 試験形式)

問1 午前II形式(4択)

Citrix NetScaler ADC / Gateway の CVE-2026-88772 のように、認証前(pre-auth)に悪用できる脆弱性に対して、MFA(多要素認証)が防御として機能しない理由として、最も適切なものはどれか。

  • ア MFA は管理画面へのログインだけに適用され、VPN 利用者には適用されないから
  • イ 脆弱な処理が認証より前に実行されるため、認証を経ずに攻撃が成立するから
  • ウ メモリオーバーフローによって MFA の秘密情報が漏えいするから
  • エ 攻撃者が正規利用者のセッションを盗み、MFA 済みの状態を引き継ぐから
解答・解説を表示

解答:イ

細工した DTLS の通信は、認証処理に届く前の段階で処理されるため、パスワードや MFA が判定される機会がない。アは MFA の適用範囲の話で、今回の原因ではない。ウは報告されていない。エはセッションハイジャックの説明で、認証済みのセッションが前提になる点で pre-auth の攻撃とは異なる。

↑ Part 1「本来の仕組みと、どこが破られたか」を読み直す

問2 午後形式(記述)

A社は、リモートアクセスの入口として Citrix NetScaler Gateway をインターネットに公開している。サービス停止を避けたいという事情から、境界の機器のパッチ適用は四半期ごとの保守時間にまとめて実施してきた。CVE-2026-88772 の悪用が報告されたため、A社は緊急でパッチを適用した。しかしセキュリティ担当の B さんは、①パッチを適用しただけでは対応が完了したとはいえないと指摘した。

設問 本文中の下線①について、B さんがそう指摘した理由を50字以内で述べよ。

解答・解説を表示

解答例:適用前に侵入され、ウェブシェルの設置や内部への横断移動が既に起きている恐れがあるから(42字)

パッチが防ぐのは、これからの侵入だけ。今回はウェブシェルの設置や内部への横移動が報告され、公表前から悪用の試みもあった。Web サーバー設定の改ざんや不審なファイル、パッチ前のログを調べる必要がある。「再起動していないから」のような作業手順の話は、問われている理由になっていない。

↑ Part 1「攻撃の流れ」を読み直す

↑ Part 1「いま確認すること」を読み直す