跳到主要内容

一个流量网关的堆内存没清零,成就了 LoadMaster 的未认证 RCE:CVE-2026-8037 全复盘——escape_quotes 函数里的未初始化堆缓冲区如何变成 system() 的命令注入,CVSS 9.8、KEV 在野利用

Public

Progress Kemp LoadMaster 是很多企业用来做负载均衡、WAF 与应用交付的"流量网关"。它处在所有外部流量进入业务系统的要道上,本该是防线最厚的地方,但 CVE-2026-8037 却在它的 API 上留下了一个未认证的命令注入洞:CVSS 3.1 达 9.8(Critical),2026 年 8 月 7 日便被 CISA 列入已知被利用漏洞(KEV)目录。根源藏在 escape_quotes() 函数里——一段因堆缓冲区未初始化、又缺少终止符而埋下的隐患,最终演化成可远程执行任意命令的通道。

一、根因:一个"没初始化也没收尾"的堆缓冲区
攻击路径落在 LoadMaster 的 /accessv2 API 端点。研究者(watchTowr Labs)把症结定位到 escape_quotes():该函数在处理自定义 JSON 数据时,使用的堆缓冲区既没有被正确初始化,也没有加上应有的空终止符。正是这个"未初始化 + 无 null terminator"的组合,让攻击者能通过构造 JSON 请求、注入未被正确转义的输入,最终把这些输入一路送进 system() 去执行系统命令。换句话说,本来应当把用户输入"安全转义后再交给系统"的一道闸,因为缓冲区状态不干净而彻底失效——攻击者只需发起一个未经认证的网络请求,就能在 LoadMaster 的守护进程上下文里运行任意命令。

二、为什么它是 9.8 的"入口级"灾难
LoadMaster 作为应用交付控制器,账号权限与网络位置都相当关键:它往往持有转发规则、证书、遥测配置,并深度接入进出的业务流量。一个未认证的 RCE,意味着攻击者不必拿到任何有效账号,只要网络可达就能拿下这台网关,进而把它当成通往后端全部服务的跳板。CISA KEV 在 8 月 7 日将其加入、并把修复期限定在几天之内,说明攻击者已经把这扇门用起来了。CVSS 9.8 的三个维度——无需认证、攻击复杂度低、对机密性完整性可用性都造成高危影响——共同指向一个结论:这是一台"一失守就难止"的设备,处置优先级应当等同于防火墙与 VPN。

三、处置与缓解

  • 升级 LoadMaster 至修复版本(GA 7.2.63.2、LTSF 7.2.54.18 等),这是根治手段;
  • 在升级完成前,将 /accessv2 及管理/调试接口从不可信网络隔离,限制管理 API 只对可信任网段开放;
  • 审计告警与访问日志,排查是否存在指向 /accessv2 的异常构造请求或可疑命令执行痕迹;
  • 将 LoadMaster 纳入与 VPN、网关同级别的补丁与监控序列——流量入口设备不该排在打补丁的最后。

CVE-2026-8037 把"堆内存未初始化"这样一个听起来很底层的工程细节,和"未认证远程代码执行"直接相连,恰到好处地展示了网络边缘设备攻击面之锋利。当一台处理所有外部流量的网关,因为一个 escape_quotes() 少做的一步初始化而失守时,它对企业的意义早已超出"某条命令被执行"——它意味着,整条应用链的咽喉,被一根很不起眼的线轻轻掐住了。

参考:NVD 对 CVE-2026-8037 的记录、CISA 2026 年 8 月 7 日将其列入已知被利用漏洞目录、watchTowr Labs 的技术报告。

命令注入远程代码执行LoadMasterCVE-2026-8037CISA KEV在野利用API安全Progress加载均衡WAF流量网关未认证漏洞堆内存应用交付
0