Citrix CVE-2026-88776/88777|前提条件付き9.8の読み方と固定版の判定

Citrix(Cloud Software Group)は 2026年9月、NetScaler ADC と NetScaler Gateway の速報 CTX697096 で CVE-2026-88771 から 88778 の8件をまとめて修正した。このうち CVE-2026-88771 と 88772 は悪用が観測されていて、CISA の KEV(Known Exploited Vulnerabilities)に収載済みである。

本記事はその8件のうち、NVD が CVSS 3.1 で 9.8(Critical) を付けた CVE-2026-88776 と CVE-2026-88777 を扱う。この2件は「9.8 だが前提条件がある」「悪用は未確認」「固定版の番号が系統ごとに違う」という、読み方を間違えやすい形をしている。CVE の要約は 脆弱性対応ウォッチの CVE-2026-88776 と CVE-2026-88777 にも置いてある。

2件の中身: メモリオーバーフロー、ただし構成の前提条件が付く

NVD の説明文(2026-09-27 公開・09-29 更新)は2件とも同じ文面で、「Memory overflow vulnerability in Citrix NetScaler ADC and Citrix NetScaler Gateway … leading to unpredictable or erroneous behavior or Denial of Service」。CWE は CWE-119(バッファ境界外のメモリ操作)である。

違いは Citrix 速報が書く前提条件(Pre-conditions)にある。

CVE 前提条件(速報の原文) NVD CVSS 3.1 Citrix CVSS 4.0
CVE-2026-88776 Configured as a Load Balancing (LB) virtual server of type Oracle 9.8 8.8
CVE-2026-88777 Configured as an LB/CS or CGNAT-LSN/NAT64 device with a non-HTTP L7 protocol feature enabled 9.8 8.8

88776 は Oracle 型の負荷分散仮想サーバを構成している装置、88777 は HTTP 以外の L7 プロトコル機能を有効にした LB / CS、または CGNAT(LSN)/ NAT64 の装置が対象である。どちらも持たない装置は、この2件については前提条件に当たらない。

9.8 と 8.8 の差はベクタを見ると分かる

NVD の 3.1 ベクタと、Citrix(CNA)の 4.0 ベクタを並べる。

1
2
NVD    CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Citrix CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N

攻撃元(ネットワーク)・複雑さ(低)・権限(不要)・操作(不要)は同じである。差は影響の側で、NVD は機密性・完全性・可用性を すべて H、Citrix は機密性と完全性を L、可用性だけ H としている。速報が書く影響は「予測できない誤動作またはサービス拒否」で、Citrix の評価はそれに沿う。NVD の 9.8 は「メモリオーバーフローなので最悪を見る」評価と読める。

どちらが正しいかはここでは決めない。確かめられるのは、2026年10月2日の再点検時点で、この2件は KEV に収載されておらず、Citrix 速報も悪用を「観測した」と書いているのは 88771 と 88772 だけということである。

それでも速報単位で更新する理由

前提条件に当たらないからといって、この版を据え置いてよいわけではない。同じ速報の CVE-2026-88771 は既定構成で成立し、KEV の是正期限は 2026-09-30 だった。固定版は8件で共通なので、更新の判断は CVE 単位ではなく 速報単位になる。速報に更新以外の回避策は載っていない。

固定版は次の4本である(速報の Affected Versions の原文から)。

系統 固定版
NetScaler ADC / Gateway 14.1 14.1-73.37 以降
NetScaler ADC / Gateway 13.1 13.1-64.23 以降
NetScaler ADC 14.1 FIPS 14.1-73.37 FIPS 以降
NetScaler ADC 13.1 FIPS / NDcPP 13.1-37.279 以降

ここに落とし穴がある。13.1 の FIPS / NDcPP は 13.1-37.x という別のビルド番号列で、通常の 13.1 が 13.1-64.x なのと揃っていない。「13.1 は 64.23 以降が固定版」とだけ覚えて 13.1-37.279 FIPS を見ると、37 は 64 より小さいので未修正と誤判定する。逆に 14.1 は通常も FIPS も 73.37 で同じである。

実際に試す

稼働中の版数は装置で show ns version を打つと出る。その文字列を固定版と比べる判定を Node.js 24.11.1 で書いた。系統(14.1 / 13.1 / 13.1 FIPS,NDcPP)ごとに固定版を別に持ち、同じ系統の中でだけビルド番号を比べる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// CTX697096(2026-09)の固定版。系統(14.1 / 13.1 / 13.1 FIPS,NDcPP)ごとに別のビルド番号列を持つ
const FIXED = {
"14.1": { build: 73, rev: 37 }, // 14.1-73.37(通常・FIPS とも)
"13.1": { build: 64, rev: 23 }, // 13.1-64.23
"13.1-FIPS": { build: 37, rev: 279 }, // 13.1-37.279 FIPS / NDcPP
};
function parseNs(s) {
const m = /^(\d+\.\d+)-(\d+)\.(\d+)(?:\s+(FIPS|NDcPP))?$/i.exec(s.trim());
if (!m) throw new Error("形式が違う: " + s);
const line = m[1] + (m[4] && m[1] === "13.1" ? "-FIPS" : "");
return { line, build: +m[2], rev: +m[3] };
}
function isFixed(s) {
const v = parseNs(s), f = FIXED[v.line];
if (!f) return "系統が表に無い: " + v.line;
return (v.build > f.build || (v.build === f.build && v.rev >= f.rev)) ? "fixed" : "VULNERABLE";
}
for (const s of ["14.1-73.36", "14.1-73.37", "14.1-73.41", "13.1-64.22", "13.1-64.23",
"13.1-37.278 FIPS", "13.1-37.279 FIPS", "13.1-37.279 NDcPP", "14.1-73.37 FIPS"]) {
console.log(s.padEnd(20), isFixed(s));
}

実行結果:

1
2
3
4
5
6
7
8
9
14.1-73.36           VULNERABLE
14.1-73.37 fixed
14.1-73.41 fixed
13.1-64.22 VULNERABLE
13.1-64.23 fixed
13.1-37.278 FIPS VULNERABLE
13.1-37.279 FIPS fixed
13.1-37.279 NDcPP fixed
14.1-73.37 FIPS fixed

13.1-37.279 FIPS が fixed になるのは、系統を 13.1-FIPS に分けて 37.279 と比べているからである。系統を分けずに 64.23 と比べると、この行は VULNERABLE に転ぶ。14.1-73.41 は速報 CTX697096 より後の 2026-10-04 に出た CVE-2026-88779(SAML 構成の DoS・KEV 収載・是正期限 2026-10-07)の固定版で、当然この表でも fixed である。

前提条件の有無を確かめるなら、装置で show lb vserver を打ち、サービス種別が ORACLE の仮想サーバがあるか(88776)、HTTP 以外の L7 プロトコルを扱う LB / CS や CGNAT / NAT64 の構成があるか(88777)を見る。無くても、同じ版の 88771 のために更新は要る。

まとめ

  • CVE-2026-88776 / 88777 は NVD 9.8・Citrix 8.8 で、差は影響の C / I の評価にある。2026年10月2日時点で KEV 未収載、悪用の観測は同じ速報の 88771 / 88772 のみ。
  • 2件とも構成の前提条件が付くが、固定版は速報の8件で共通なので、更新は速報単位で判断する。
  • 固定版の比較は系統ごとに行う。13.1 の FIPS / NDcPP は 13.1-37.x で、通常の 13.1-64.x とは別の番号列である。

数値・版数は 2026-10-05 に NVD API と Citrix 速報で確認した。変動するため最新は公式で確認すること。

参照: NVD CVE-2026-88776 / NVD CVE-2026-88777 / Citrix Security Bulletin CTX697096 / 脆弱性対応ウォッチ CVE-2026-88776


Citrix CVE-2026-88776/88777|前提条件付き9.8の読み方と固定版の判定
https://blog.hashito.biz/2026/10/05/citrix-cve-2026-88776-88777-precondition-fixed-build-lines/
著者
hashito
作成日
2026年10月5日
著作権