使用 App & API Protector 抵御 CitrixBleed 2 (CVE‑2025‑5777) NetScaler 内存泄漏漏洞
2025 年 7 月 4 日星期五,一个影响 Citrix NetScaler ADC 及 Gateway 设备的内存泄漏漏洞的利用细节被公之于众。这是一个预身份验证漏洞。攻击者可利用该漏洞构造恶意请求,进而从受影响的 NetScaler 设备中泄漏未初始化的内存数据。
该漏洞最初于 2025 年 6 月 17 日向 Citrix 客户公布,随后一些研究机构展示了围绕该漏洞的活动、入侵指标以及漏洞利用概念验证。即使您已迅速修补受影响的设备,但鉴于概念验证代码现已公开,我们仍强烈建议您立即检查是否存在暴露风险。考虑到受影响的设备可以被配置为 VPN、代理或 AAA 虚拟服务器,此漏洞会造成极其严重的后果。会话令牌和其他敏感数据可能会遭到暴露,这可能使攻击者对内部应用程序、VPN、数据中心网络和内部网络进行未经授权的访问。
受影响的设备及版本:
- NetScaler ADC 及 NetScaler Gateway 14.1(14.1-43.56 以下)
- NetScaler ADC 及 NetScaler Gateway 13.1(13.1-58.32 以下)
- NetScaler ADC 13.1-FIPS 及 NDcPP(13.1-37.235-FIPS 及 NDcPP 以下)
- NetScaler ADC 12.1-FIPS(12.1-55.328-FIPS 以下)
自从漏洞利用细节被披露以来,我们观察到漏洞扫描器流量急剧增加,并且有更多攻击者开始搜索存在漏洞的目标。为保护 App & API Protector 客户的安全,我们已部署了专门的快速规则 3000967 来抵御此 CVE 带来的威胁。
此外,请关注以下两个与 Citrix 相关的其他 CVE:
CVE‑2025‑6543:这是 Citrix NetScaler ADC/Gateway(VPN/AAA 模式)中一个未经身份验证的内存溢出漏洞,它可能会造成控制流中断、拒绝服务,甚至会导致远程代码执行。但目前没有公开的 PoC 可用。
CVE‑2025‑5349:此漏洞与影响 NetScaler 管理接口的不当访问控制缺陷相关,它可能会导致执行未经授权的管理操作。目前没有已知的公开 PoC。
漏洞详情
Citrix NetScaler 的底层代码是以 C 或 C++ 编写的,并且该漏洞存在于用于处理登录参数的身份验证函数内。
根本原因是使用了未初始化的登录变量(用于保存用户名详细信息),再加上不正确的内存处理、缺乏输入验证以及 Citrix NetScaler 的身份验证逻辑中缺少错误处理。由于 C 和 C++ 不会自动将变量初始化为零、Null 或某些其他的指定值,因此未初始化的变量可能会指向随机堆栈内存空间,并使攻击者能够访问驻留此内存空间中的意外/敏感数据,这些数据本质上是先前操作或处理后的遗留数据。
该漏洞针对的是 URL 路径 /p/u/doAuthentication.do 并且不需要进行身份验证,因此攻击者能够很容易地利用它,而且不需要任何先决条件。通过这组漏洞,未经身份验证的攻击者能够泄漏敏感的内存内容,并且某些攻击者已经开始在现实环境中利用它。该漏洞对受害者和企业的全部影响以及受影响的受害者和企业的范围仍不清楚。
利用漏洞
执行身份验证的合法 POST 请求将包含预期的确切参数名称(如 login, passwd),以及具有相应值的其他参数(图 1)。
在漏洞利用尝试中,User-Agent 标头和 HTTP 正文中还会出现明显较大的由攻击者控制的攻击载荷,该载荷可能仅包含登录字符串(图 2)。这使得它更容易被人利用。
为什么它称为 CitrixBleed?
之所以使用了“CitrixBleed”一词,是因为可以通过发送相同的攻击载荷来重复触发该内存泄漏,并且每次尝试都会泄露新的堆栈内存块——这种持续地“渗出”敏感信息的方式就像流血一样。长 User-Agent 标头被用于将可识别的模式注入堆栈中。通过用足够大的随机字符串(例如,多次重复的 THR-WAF-RESEARCH)来淹没内存,攻击者可以确保未初始化的堆栈字节何时被泄漏。这些独特的标记将出现在 HTTP 响应正文中的 XML 标记 <InitialValue>…</InitialValue> 内。这既证实了内存泄漏,又暴露了内存中的块,这些块通常包含敏感数据,如会话变量、令牌、密码、用户名或配置值。
正如 2023 年披露的原始 CitrixBleed 漏洞 (CVE‑2023‑4966) 通过格式不正确的 Host 标头来泄漏内存一样,CitrixBleed 2 (CVE‑2025‑5777) 这次也通过使用未初始化的变量来泄漏内存。凭借严格的 Host 标头验证,Akamai Ghost Servers 在默认情况下抵御了第一个问题,而应对 CitrixBleed 2 需要专用的 Adaptive Security Engine (ASE) 规则。
以下是对漏洞利用步骤的简单回顾:
1) 侦察:扫描暴露的 Citrix NetScaler ADC/Gateway 实例。
2) 枚举:检查目标运行的是不是存在漏洞的版本。
3) 利用:将包含长 User-Agent 标头的特制请求发送到 /p/u/doAuthentication.do(无需进行身份验证)
4) 泄漏:设备会在 XML 标记 <initialValue> 中以泄漏的堆栈内存进行响应。
5) 渗出阶段:步骤 3 和 4 可重复进行,从而导致同一目标设备持续发生堆栈内存泄漏 (CitrixBleed 2)。
6) 漏洞利用后:攻击者会将泄漏的数据用于恶意用途,如使用泄漏的会话令牌成功进行身份验证。
App & API Protector 的抵御措施
为了应对 CitrixBleed 2,WAF 威胁研究团队于 2025 年 7 月 7 日发布了一条新的快速规则,其默认操作设置为“告警”:
3000967 - 检测到 Citrix NetScaler 内存泄漏漏洞 (CVE-2025-5777)
在确认该规则准确无误后,该团队于 2025 年 7 月 8 日将建议的快速规则操作设置为默认操作“拒绝”。
漏洞利用细节
7 月 8 日,我们监测到攻击者针对 URL 路径 /p/u/doAuthentication.do 发起了超过 200,000 个 POST 请求,这些请求跨越多个主机名并来自于不同的 IP 地址。这些请求看起来确实是旨在识别存在漏洞的 NetScaler 实例的大规模扫描尝试。图 4 是我们在此活动期间检测到的请求示例: