FlawOpen

flawopen.com/Teardowns/cve-2026-88779-citrix-netscaler-saml-memory-overflow

● CVE-2026-88779 · CVSS v4 8.7 · 高
セキュリティ研究 · FlawOpen

CVE-2026-88779:Citrix NetScaler の SAML メモリオーバーフロー

CVE-2026-88779 は、顧客管理の Citrix NetScaler ADC および Gateway におけるメモリオーバーフローの脆弱性です。SAML 認証を設定した環境が影響を受け、サービス拒否を狙う標的型攻撃で悪用されています。Citrix は顧客データの完全性への影響を確認していません。[1], [2], [3]

💡 わかりやすい解説 (ELI5)

受付の列には定員があります。担当者が定員を超える場所を必要とする番号札を受け取ると、窓口が停止して全員にサービスできなくなることがあります。この問題は特定の SAML 経路でメモリ境界を越えます。確認されている影響は可用性であり、RCE が公表されたわけではありません。[1]

主要な概念と専門用語

SAML SP / IdP
SAML 認証におけるサービスプロバイダーと ID プロバイダーの役割。Citrix はいずれの構成も前提条件に挙げています。[1]
CWE-119
メモリバッファの境界内に操作を適切に制限できない弱点。[1]
Global Deny List
Citrix の仮想パッチ機能。公開された条件を満たす場合のみ暫定策として使用します。[2]
関連するCVE-2026-88771
別件のCWE-20未認証RCEは、顧客管理の全デプロイに影響します。これは本記事のSAML構成が条件となるCWE-119のサービス拒否とは別の問題です。両方ともCitrix速報CTX697096に記載され、修正リリース系列は共通です。[6]

フレームワーク対応

根本原因の分析 (Root Cause)

Citrix は CVE-2026-88779 を CWE-119、CVSS 4.0 8.7 とし、NetScaler ADC または Gateway を SAML サービスプロバイダー(SP)または ID プロバイダー(IdP)として構成した場合、メモリオーバーフローがサービス拒否につながると説明しています。補足ガイダンスでは、Gateway または AAA 機能と組み合わせた SAML 認証を確認対象とし、未緩和の環境に対する標的型攻撃を報告しています。繰り返し発生するとサービス停止が続く可能性があります。Citrix は顧客データの完全性への影響を確認していません。脆弱なソース行やパッチ差分は公開されていません。以下の C コードは一般的な境界チェックの例であり、NetScaler のコードでも脆弱性の再現でもありません。設定に add authentication samlAction(SAML SP)または add authentication samlIdPProfile(SAML IdP)があるかを確認し、Gateway/AAA の構成を評価して修正ビルドを適用します。Global Deny List は Citrix が示すバージョンとコンソールの前提を満たす場合だけ暫定策として使用してください。[1], [2]

CVE-2026-88779 の対象範囲と修正一覧

項目文書化された条件またはバージョン運用担当者の対応
影響を受ける構成顧客管理の ADC/Gateway で、Gateway/AAA の用途に SAML SP または IdP が設定されている。add authentication samlAction と add authentication samlIdPProfile を確認し、Gateway/AAA の利用状況を評価する。
ADC/Gateway 14.114.1-73.41 より前は影響対象。14.1-73.41 以降で修正。この系列の修正済みバージョンへ更新する。
ADC/Gateway 13.113.1-64.28 より前は影響対象。13.1-64.28 以降で修正。この系列の修正済みバージョンへ更新する。
ADC 14.1-FIPS14.1-73.41 FIPS より前は影響対象。14.1-73.41 FIPS 以降で修正。FIPS 修正版へ更新し、標準版の番号を代用しない。
ADC 13.1-FIPS/NDcPP13.1-37.282 より前は影響対象。13.1-37.282 以降で修正。該当する FIPS/NDcPP 修正版へ更新する。
Global Deny List の対象となる中間バージョン14.1-73.37 ≤ バージョン < 14.1-73.41;13.1-64.23 ≤ バージョン < 13.1-64.28。Citrix の全前提を確認した場合のみ、一時的な virtual patch として使用する。アップグレードの代わりにはならない。
Global Deny List の前提Cloud Connect または Console service 接続の NetScaler Console;virtual patching 有効;標準シグネチャ v24 以降。show appfw signatures と stat denylist global AAA_REQUEST で確認し、有効化前に Citrix の最新手順を確認する。

ステップ・バイ・ステップの攻撃フロー

ステップ 1

SAML 要求が構成済みサービスに到達

ネットワーク要求が Citrix の条件を満たす環境の SAML 認証経路に届きます。[1], [3]

ステップ 2

メモリ境界の不備が発動

メモリ境界の不備が発動する可能性があります。Citrix が確認している影響はサービス拒否で、標的型攻撃も報告されています。[1]

ステップ 3

認証サービスが利用不能になる

繰り返し発動するとサービス停止が続く場合があります。完全性への影響は確認されておらず、この CVE を RCE と表現しないでください。[1], [2]

ステップ 4

影響範囲を確認し、緩和して更新

SAML と Gateway/AAA 構成を確認し、適用条件を満たす場合だけ Global Deny List を暫定利用してから修正ビルドへ更新します。[1], [2]

ソースコード比較:脆弱 vs 堅牢化

この C の例は、一般的なバッファ容量チェックを示します。Citrix は NetScaler の脆弱なソースコードやパッチ差分を公開していません。この例は CVE の再現ではありません。製品の修正は Citrix の修正ビルドで行い、Global Deny List は条件を満たす場合だけ暫定策として使います。

ソース抜粋: 一般的な C の境界チェック例。Citrix NetScaler のソースコードではありません

脆弱な実装
#include <stddef.h>
#include <stdint.h>
#include <string.h>

int copy_field(uint8_t *dst, const uint8_t *src, size_t len) {
    /* 一般的な危険パターン: 入力長を dst の容量と照合していない。 */
    memcpy(dst, src, len);
    return 1;
}
堅牢化されたセキュアパッチ
#include <stddef.h>
#include <stdint.h>
#include <string.h>

int copy_field(uint8_t *dst, size_t dst_capacity,
               const uint8_t *src, size_t len) {
    if (len > dst_capacity) return 0;
    memcpy(dst, src, len);
    return 1;
}

エンジニアリング&システム堅牢化チェックリスト

参考資料