CVE-2024-21762: FortiOS/FortiProxy SSL-VPN 未授权 RCE 漏洞分析

CVE-2024-21762: FortiOS/FortiProxy SSL-VPN 未授权 RCE 漏洞分析

CVE-2024-21762 是 Fortinet 近年最值得重点跟踪的边界设备高危漏洞之一。它影响 FortiOSFortiProxySSL-VPN 暴露面,属于典型的预认证、互联网可达、已知在野利用漏洞。

Fortinet 生态的风险不在于单个 CVE 本身,而在于这条攻击面已经连续多年反复出现高危问题:

  • CVE-2022-42475
  • CVE-2023-27997
  • CVE-2024-21762

这说明攻击者对 SSL-VPN 入口的研究与武器化是持续的,而不是一次性事件。

0x01 漏洞背景与影响范围

Fortinet 官方将 CVE-2024-21762 定义为 sslvpnd 中的越界写漏洞,攻击者可通过特制 HTTP 请求实现未授权代码或命令执行。NVD 给出的 CVSS 3.19.8,官方严重等级为 Critical,并且厂商明确表示该漏洞“可能已在野利用”。

受影响版本

公开资料给出的主要受影响版本如下。

FortiOS

  • 7.4.07.4.2
  • 7.2.07.2.6
  • 7.0.07.0.13
  • 6.4.06.4.14
  • 6.2.06.2.15
  • 6.0.06.0.17

FortiProxy

  • 7.4.07.4.2
  • 7.2.07.2.8
  • 7.0.07.0.14
  • 2.0.02.0.13
  • 1.21.11.0 全版本

修复版本

至少应升级到以下版本或更高版本:

  • FortiOS 7.4.3
  • FortiOS 7.2.7
  • FortiOS 7.0.14
  • FortiOS 6.4.15
  • FortiOS 6.2.16
  • FortiOS 6.0.18
  • FortiProxy 7.4.3
  • FortiProxy 7.2.9
  • FortiProxy 7.0.15
  • FortiProxy 2.0.14

一个经常被忽略的重点

Fortinet 官方给出的临时缓解措施是:

  • 禁用 SSL-VPN

而不是“仅禁用 web mode”或做轻量配置调整。换句话说,如果业务仍然开放 SSL-VPN 暴露面,很多看似局部的缓解都不应被视为真正收敛。

0x02 漏洞原理

1. 核心问题位于 sslvpnd 的 HTTP 请求处理

CVE-2024-21762 并不是简单的参数注入,也不是传统命令拼接,而是 sslvpnd 在处理特制 HTTP 请求时出现了内存写越界问题。

公开补丁分析和逆向研究普遍指向:

  • Transfer-Encoding: chunked
  • chunk 长度字符串解析
  • 请求体处理过程中的边界校验缺失

攻击者可以通过异常构造的 chunked 请求,使服务端在内存处理阶段发生错误,进而把一个原本只该导致崩溃的输入升级成潜在代码执行入口。

2. 为什么这是典型的“边界设备高价值漏洞”

这类漏洞的可怕之处在于:

  • 发生在预认证阶段
  • 直接暴露于互联网
  • 命中的是承担远程接入的核心进程
  • 目标设备本身保存有大量配置、凭据与连接关系

因此攻击者一旦稳定利用成功,收益远高于打下一台普通 Web 服务。

3. 公开研究的核心结论

Bishop FoxAssetnote 的研究都表明,这个漏洞更接近“需要稳定化处理的内存破坏型 RCE”,而不是那种低门槛、线性拼接即可命令执行的漏洞。

也正因如此,公开高质量利用研究的节奏略慢于补丁披露,但这并不降低真实风险,反而说明:

  • 真实攻击者可能在公开 PoC 之前就已掌握稳定打法
  • 蓝盾不能因为“看不到满天飞的一键脚本”就误判风险低

4. 本质总结

这条路径可以概括为:

未授权 HTTPS 请求 -> SSL-VPN 请求解析 -> chunked 处理越界写 -> sslvpnd 内存破坏 -> 潜在代码执行

它打中的不是业务应用,而是整个边界访问控制链的核心入口。

0x03 利用路径与攻击链

1. 首先命中 SSL-VPN 暴露面

攻击者需要的前提非常简单:目标暴露了 SSL-VPN。随后即可向 /remote/ 相关路径发送特制请求,尝试触发 sslvpnd 的异常处理链。

2. 从越界写到后利用

一旦执行能力建立,攻击者通常不会满足于一次命令验证,而会立刻转入更稳定的后利用动作,例如:

  • 导出配置
  • 读取本地与远程认证材料
  • 检查管理员与 VPN 用户配置
  • 建立后门或隐藏访问路径

这类设备上的后利用价值非常高,因为它们经常保存着:

  • 本地管理员口令哈希或策略
  • LDAP 绑定信息
  • RADIUS 配置
  • IPsec 预共享密钥
  • 证书与私钥材料

3. 历史同类漏洞说明它常被当作“长期入口”

20222024 的三个代表漏洞串起来看,会发现攻击者真正看重的是同一个攻击面:

  • SSL-VPN
  • 边界身份认证
  • 可直接接触互联网
  • 修复滞后时可大面积批量利用

这也是为什么 Fortinet 的漏洞研究不应只写单点,而要把它看成一个持续的产品家族风险。

0x04 POC 与验证思路

出于安全考虑,这里不提供可直接攻击公网设备的利用代码,仅保留防守视角下的研究思路。

防守型验证重点

企业内网自查时,更有价值的是:

  1. 确认 SSL-VPN 是否对公网开放。
  2. 确认版本是否落在受影响区间。
  3. 检查是否出现异常 chunked 请求命中 /remote/ 路径。
  4. 检查 sslvpnd 是否发生崩溃、异常重启或错误日志。
  5. 排查是否存在后续异常文件、符号链接或配置异常访问。

公开工具的意义

该漏洞已有研究型检测脚本和公开 PoC 出现。对防守团队来说,真正重要的不是复现攻击,而是理解:

  • 修复前后对异常 chunk length 的处理行为不同
  • 检测更适合走协议级和行为级思路
  • 不应只依赖固定 IOC 或某个单一 payload 片段

0x05 高级利用姿势

1. 真正危险的是“补丁后仍可能有残留”

Fortinet 在 2025 年额外披露过一个很关键的现实问题:攻击者可能在利用 CVE-2022-42475CVE-2023-27997CVE-2024-21762 后,于 SSL-VPN 语言文件服务目录植入符号链接,从而在设备后续升级补丁后,仍保留对部分文件系统内容的只读访问能力。

这意味着:

  • 漏洞修复不等于后门已清除
  • 设备升级后仍可能存在残留持久化
  • 对历史暴露资产必须继续做完整性核查

2. 先拿配置,再做二次控制

对于边界设备,攻击者最看重的往往不是交互 shell 本身,而是:

  • 配置文件
  • 凭据
  • 证书
  • 信任关系

因此更典型的武器化路线是:

  1. 打下 SSL-VPN
  2. 获取配置与认证材料
  3. 继续控制远程接入链路
  4. 向内网与下游认证体系扩展

3. 行为隐蔽性强于普通 WebShell 场景

Fortinet 场景中的后利用不一定表现为一个显眼的 PHP/JSP 文件,更可能体现为:

  • 符号链接
  • 配置篡改
  • 异常读取
  • 管理配置被悄悄变更

这也是为什么排查 Fortinet 设备时,不能只做“扫 webshell”这类面向通用主机的动作。

4. 连续 CVE 说明攻击者关注的是整个产品线

如果把 CVE-2022-42475CVE-2023-27997CVE-2024-21762 放在一起看,就会发现:

  • 这些都围绕 SSL-VPN
  • 都具有极强的互联网批量利用潜力
  • 都容易和后续持久化、凭据窃取结合

因此建立知识库时,应该把 FortiOS/FortiProxy 视为持续重点跟踪产品线。

0x06 日志痕迹与应急排查

1. 网络侧请求特征

重点关注:

  • /remote/ 路径
  • Transfer-Encoding: chunked 的异常请求
  • 不符合正常客户端行为的请求体结构
  • 异常 trailer 或长度字段

这类痕迹对协议级检测非常重要。

2. sslvpnd 异常

CVE-2024-21762 来说,sslvpnd 的崩溃、异常重启或与请求时间点对应的故障日志,是非常关键的线索。内存破坏类漏洞往往会在这里留下侧面证据。

3. 文件系统完整性

应重点检查:

  • SSL-VPN 相关语言文件服务目录
  • 是否存在异常符号链接
  • 关键系统文件是否被间接暴露
  • 配置目录是否被异常读取或导出

如果设备曾长期暴露,且处于历史脆弱版本,应尤其关注官方 2025 年披露的后利用残留风险。

4. 配置与凭据泄露风险

如果设备可能已失陷,应同步评估以下材料是否已暴露:

  • 管理员密码
  • 本地用户口令
  • VPN 用户凭据
  • RADIUS secret
  • LDAP 绑定口令
  • IPsec PSK
  • 证书与私钥

这一步往往比“有没有一个明显后门文件”更重要。

5. 应急处置原则

一旦怀疑设备受影响,建议按“已入侵”而不是“仅需打补丁”处理:

  • 立即升级到修复版本
  • 收集 IoC 与完整性信息
  • 必要时执行干净重装或重建设备
  • 轮换所有高价值凭据与密钥
  • 审核所有与该设备关联的认证和远程接入链路

0x07 修复与缓解建议

1. 第一优先级是升级

直接升级到官方修复版本或更高版本,是阻断继续利用的核心步骤。

2. 不能立刻升级时,关闭 SSL-VPN

这比局部关闭功能更可靠。仅关闭 web mode 并不能被视为完整缓解。

3. 对历史暴露资产做更高等级排查

如果设备在漏洞披露前后长时间暴露于公网,即便现在版本已修复,也建议继续:

  • 校验文件系统完整性
  • 检查是否存在恶意符号链接
  • 回看日志与流量
  • 确认是否有异常管理员操作和配置变化

4. 必要时重装重建

Fortinet 官方对疑似失陷设备的建议并不只是“删除异常文件”,而是强调:

  • 使用可信固件
  • 校验哈希
  • 重新部署
  • 从干净备份恢复或手工重建配置

这说明边界设备在深度失陷后,简单的“原地修补”并不可靠。

5. 轮换所有可能受影响的秘密

至少应考虑重置:

  • 管理员与本地账号口令
  • VPN 用户口令
  • RADIUS 共享密钥
  • IPsec PSK
  • LDAP 绑定凭据
  • 证书与私钥材料

0x08 参考资料