一个针对 CVE-2026-88778(NetScaler 可预测的 TCP 初始序列号,ISN)的离线检查工具。 它对运维人员报告的 NetScaler 版本与配置证据进行分诊,并输出 JSON、CSV 或 HTML 报告。它是一个独立的 Python 3.10+ 脚本,仅使用标准库。
它从不连接设备、不运行应用程序代码、不扫描配置,也不测试可利用性。它没有网络模式,也没有漏洞利用载荷。
该检查工具遵循 node2shell-check 和 php2shell-check 的报告约定。它仅覆盖这一个 CVE。所有输入均为未经核实的运维人员声明。
potentially_affected 并不表示已确认的可利用性。fixed_version_reported 并不构成补丁或安全保证。unknown 绝不代表安全。exploitability: not_tested。需要 Python 3.10 或更高版本(如果你的系统以 python3 方式安装,请使用 python3)。无需安装任何内容,也没有任何依赖。
# One reported build
python netscaler_cve_2026_88778_check.py --version 14.1-73.36 --variant standard
# The synthetic example inventory as an HTML report
python netscaler_cve_2026_88778_check.py --inventory docs/example-inventory.json --format html --output report.html
# A CSV inventory as JSON, exiting 1 on findings
python netscaler_cve_2026_88778_check.py --csv-list inventory.csv --format json --fail-on-finding
仅对您获授权评估的清单运行。运行 --help 查看所有选项。
受影响是指严格早于同一分支和变体的修复构建版本。不会臆造下限或生命周期结论。
| 分支和变体 | 厂商修复构建版本 |
|---|---|
| 14.1 standard | 14.1-73.37 |
| 13.1 standard | 13.1-64.23 |
| 14.1 FIPS | 14.1-73.37 |
| 13.1 FIPS/NDcPP | 13.1-37.279 |
其他分支和 14.1 NDcPP 保持为 unknown。当 standard 与 FIPS/NDcPP 比较结果不一致时,未明确说明的 13.1 变体保持为 unknown。
接受的构建文本。 14.1-73.37、14.1.73.37 和 NS14.1: Build 73.37.nc,可选在可选的 nc 标记之前标注 FIPS/NDcPP。仅提供构建文本。格式错误、带限定、非 ASCII、冲突、自定义构建和未覆盖的证据保持为 unknown。
以 true、false 或 unknown 的 CLI 标志、JSON 布尔值或 null,或文档化的 CSV 值提供显式观察。它们与版本状态保持分离,且不能证明可达性。不收集本地配置或进程数据。
| CLI 标志 | 含义 | 暴露条件期望 |
|---|---|---|
--tcp-vserver | 至少一个虚拟服务器具有公告中列出的支持 TCP 的类型 | true |
--enhanced-isn-enabled | 已启用增强 ISN 生成 | false |
仅凭固件不足以应对此 CVE。 厂商还要求显式启用增强 ISN 生成并验证其处于活动状态。即使 version_status 为 fixed_version_reported,remediation_status 仍会保留必需的或未验证的配置更改可见。独立审查检索了链接的厂商 TCP 配置指南:增强 ISN 生成默认禁用,必须显式启用。检查器不执行任何配置命令。
可组合使用 --version、--inventory 和 --csv-list 中的任意项。除非提供 --force,否则拒绝覆盖现有报告。
| 选项 | 用途 |
|---|---|
--version BUILD | 报告的 NetScaler 构建版本;可重复。 |
--variant standard|fips|ndcpp | 应用于所有 CLI 版本的变体。未说明的歧义变体保持为 unknown。 |
--build-source SOURCE | 应用于所有 CLI 版本的来源。仅空值、unknown、official 和 citrix 允许进行比较;其他任何值保持为 unknown。 |
--inventory FILE | 严格 JSON 清单(对象或非空数组);可重复。 |
--csv-list FILE | 带 version 表头的严格 CSV;可重复。 |
--tcp-vserver、--enhanced-isn-enabled | 观察值:true、false 或 unknown(默认 unknown)。 |
--format json|csv|html | 报告格式(默认 json)。 |
--output FILE | 新报告文件(默认 stdout)。输出目录必须已存在。 |
--force | 显式替换现有报告。 |
--fail-on-finding | 当固件受影响或需要增强 ISN 更改时退出码为 1。 |
--tool-version | 打印工具名称和版本。 |
输入受限制(每次运行最多 100 个文件和 10,000 条观察,每个文件 4 MiB,每个字符串 512 个字符),且必须是常规文件。输出不得解析或硬链接到任何输入,即使使用 --force 也不行。字段定义、输入模式、限制和安全规则见参考文档。
| 代码 | 含义 |
|---|---|
0 | 已写入报告。unknown 结果本身不会改变退出码,也绝不代表无问题。 |
1 | 已提供 --fail-on-finding,且结果存在受影响固件或需要增强 ISN 更改。 |
2 | 用法、输入或输出错误。这些是操作失败,而非评估结果。 |
130 | 已中断。已完成的观察在可能的情况下被保留,并带有明确的完整性元数据。 |
有关发布、中断和 stdout 语义、限制及 CSV 汇总行,请参阅参考文档。
格式包括 JSON、公式安全的 CSV 以及自包含、无脚本的 HTML。合成示例输入和生成的报告不描述任何真实系统。

来源信息。 所有格式均保留 UTC 生成时间和检查器身份,包括执行独立源代码的 SHA-256。空的和中断的 CSV 报告保持相同的规范来源信息。生成时间不是证据获取时间,源摘要也不能证明真实性或已部署的补丁状态。
变体。 HTML 区分报告的变体与规范化后的、操作员声明的变体,并对缺失的证据显示明确的 unknown。
版本候选。 有界的已接受 version_candidates 在每种格式中都保留其输入位置、报告的与规范化的构建、嵌入的变体以及所属的观测来源。格式错误的候选仅保留位置和固定原因。相互冲突的声明保持为 unknown,可利用性保持为 not_tested。
外部威胁元数据。 每个结果的 KEV 字段来自带日期的嵌入快照,且从不改变本地分类。本公告在 2026-10-25 验证的快照中为 not_listed;这并不构成安全证据,也不表示从未发生过利用。参见 KEV 元数据。
输出模式和字段定义见参考文档。
供应商公告和 CNA 记录已于 2026-10-24 审查。供应商公告决定了分支、变体和修复构建的比较。
remediation_status 即使在报告的修复构建上也会保持其可见。unknown。主要来源:
本地检查为 python -m unittest -v、python netscaler_cve_2026_88778_check.py --help 和 git diff --check。测试仅使用合成数据和本地临时文件。CI 在 Ubuntu、Windows 和 macOS 上使用 Python 3.10 和 3.14 运行。本地验证和托管的精确提交 CI 分别记录在 PR 中,合并前需要独立审查。未评估任何已部署的设备。
Copyright © 2026 CompleteTech LLC. 由 CompleteTech LLC 构建。