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 路径中突破了内存边界;已确认影响是可用性,而不是已证实的远程代码执行。[1]

核心概念与专有名词

SAML SP / IdP
SAML 身份验证中的服务提供方和身份提供方角色;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)或身份提供方(IdP)时,内存溢出可能导致拒绝服务。Citrix 的补充指南将排查范围限定为与 Gateway 或 AAA 功能结合使用的 SAML 身份验证,并报告未缓解部署正遭受定向攻击。反复触发可能使服务持续不可用;Citrix 尚未发现客户数据完整性影响。厂商未公开易受攻击的源代码行或补丁差异;下方 C 代码仅示范一般边界检查,不是 NetScaler 代码,也不复现漏洞。检查配置中的 add authentication samlAction(SAML SP)或 add authentication samlIdPProfile(SAML IdP),评估 Gateway/AAA 场景,安装修复版本;只有满足 Citrix 文档所述版本和控制台前提时,才使用 Global Deny List 临时缓解。[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 所有前提后,才将其作为临时虚拟补丁;它不能替代升级。
Global Deny List 前提NetScaler Console 配合 Cloud Connect 或 Console service;启用 virtual patching;默认签名 v24 或更高。使用 show appfw signatures 和 stat denylist global AAA_REQUEST 验证;启用前查看 Citrix 当前指南。

攻击执行流程分解

步骤 1

SAML 请求到达已配置的服务

网络请求到达符合 Citrix 前提条件部署中的 SAML 身份验证路径。[1], [3]

步骤 2

内存边界缺陷被触发

内存边界处理缺陷可能被触发;Citrix 将影响描述为拒绝服务,并报告定向攻击。[1]

步骤 3

身份验证服务变得不可用

重复触发可能令服务持续不可用。Citrix 未发现完整性影响;不要把此 CVE 描述成 RCE。[1], [2]

步骤 4

确认影响范围、缓解并修复

检查 SAML 和 Gateway/AAA 场景;仅在适用时采用 Global Deny List 临时缓解,然后升级到修复版本。[1], [2]

源代码对比:漏洞与安全实现

此 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;
}

工程与系统安全加固清单

参考来源