CVE-2026-59310|VMwarevCenter远程代码执行漏洞(POC)

admin 2026-09-28 05:28:26 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分析VMwarevCenterServerSyslog组件目录遍历漏洞CVE-2026-59310,CVSS评分9.8,可致未认证远程代码执行。漏洞源于配置模板未净化RFC5424头字段,攻击者可写入任意文件并借cron实现RCE。该漏洞已遭APT组织利用并投递勒索软件。建议立即升级至修复版本,排查cron目录异常文件、SSH密钥变更等入侵痕迹。 综合评分: 95 文章分类: 漏洞分析,应急响应,漏洞预警,红队


CVE-2026-59310 | VMware vCenter远程代码执行漏洞(POC)

alicy alicy

信安百科

2026年9月27日 09:00 河北

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

免责声明:本文仅用于安全研究与防御学习,漏洞技术细节均来源于公开可查证的安全研究资料,不涉及任何未公开攻击细节。请勿将相关技术用于非法用途。

#

0x00、前言

VMware vCenter Server 是 VMware 虚拟化体系的中枢管理平台,统一纳管 ESXi 主机、虚拟机、存储与网络,广泛部署于金融、电信、政企等行业的核心数据中心,堪称虚拟化基础设施的”总控制台”。

2026 年 7 月 29 日,Broadcom 在安全公告 VMSA-2026-0006 中披露了 vCenter Syslog Server 组件的一个目录遍历漏洞 CVE-2026-59310,CVSS 3.1 高达 9.8 分。

令人警醒的是,补丁发布仅仅 5 天后,该漏洞即遭疑似 APT 组织大规模武器化利用——截至 8 月 7 日,47 个国家的 361 个受害 IP 被确认,部分主机还被投递了 Babuk 衍生勒索软件。一个”日志服务”的路径校验疏漏,为何能撬动整个虚拟化管理平面?本文结合最新公开的补丁级分析,带你拆解到代码行。

0x01、漏洞描述

CVE-2026-59310 是一个典型的路径遍历漏洞(CWE-22),缺陷位于 vCenter Server Appliance(VCSA)内置的 Syslog 接收组件。

该组件在接收远程 Syslog 消息时,将消息头中攻击者可控的 ../ 路径遍历序列直接拼入磁盘落盘路径,写入动作因此可逸出预定的日志目录。

由于 Syslog 服务以高权限账户运行,未认证的远程攻击者只需网络可达 vCenter 的任一 Syslog 监听端口,即可向 /etc/cron.d/ 等敏感位置投递内容可控的文件,进而借 cron 调度实现 root 权限的任意代码执行(RCE)。

0x02、CVE 编号

| 项目 | 内容 | | — | — | | CVE 编号 | CVE-2026-59310 | | 漏洞类型 | 目录遍历(CWE-22)→ 任意代码执行 | | CVSS 3.1 | 9.8(Critical),AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | | 受影响组件 | vCenter Syslog 接收器(VMware 自带 rsyslog 配置模板) | | 厂商公告 | VMSA-2026-0006(2026-07-29 披露) |

#

0x03、影响版本

| 产品 | 受影响版本 | 修复版本 | | — | — | — | | vCenter Server 8.0(分支一) | 8.0 至 8.0 U3j(含 8.0.3.00900,build 15564605) | 8.0 U3k(8.0.3.01000,build 15566761) | | vCenter Server 8.0(分支二) | 8.0 U2e 及更早 | 8.0 U2f | | vCenter Server 9.0.x | 低于 9.0.2.0100 | 9.0.2.0100 | | vCenter Server 9.1.x | 低于 9.1.0.0300 | 9.1.0.0300 | | Cloud Foundation | 5.x / 9.0.x / 9.1.x | 经 VCF 生命周期管理器应用对应 vCenter 补丁 | | vSphere Foundation / Telco Cloud Platform | 9.0.x / 9.1.x;Telco 3.0 至 5.1.x | 参照厂商公告对应版本 |

#

0x04、漏洞详情

4.1 漏洞根因:四行配置模板的疏漏

法国安全研究人员通过对比 8.0.3.00900 与 8.0.3.01000 两个构建的全量文件差异完成了根因定位:

上游 rsyslog 的 RPM 包在漏洞版与修复版中 SHA-256 完全一致,排除了 rsyslog 自身的问题——缺陷出在 VMware 自带的配置模板 /usr/lib/vmware-visl-integration/config/vmware-syslog.conf.template。

其中四个 dynafile 模板把 syslog 消息头里攻击者可控的 %app-name% 与 %hostname% 字段,未经任何净化直接拼接为磁盘落盘路径:

# /usr/lib/vmware-visl-integration/config/vmware-syslog.conf.template
$template defaultLoc,"/var/log/vmware/%app-name%/%app-name%-syslog.log"
$template vpxdLoc,"/var/log/vmware/%app-name%/%app-name%-syslog.log"
$template rsyslogadminLoc,"/var/log/vmware/%app-name%/%app-name%-syslog.log"
$template esxLoc,"/var/log/vmware/esx/%hostname%/%hostname%-syslog.log"

根因可拆成三层:

其一,HOSTNAME 与 APP-NAME 只是 RFC 5424 报文头中的明文 token,任何发送者都能任意填写,拼入路径前既无白名单也无遍历检查;

其二,拼接结果被直接交给 rsyslog 的 omfile dynafile 写入器,.. 序列原样进入文件系统解析,缺少路径规范化环节;其三,$CreateDirs 默认开启,写入器还会为遍历出的路径自动创建父目录、再创建或追加最终文件。三层叠加,构成了”未认证、任意路径、内容可控”的文件写入原语。

官方补丁本身即是这条数据流最直接的证据:8.0.3.01000 的修复仅是给四个模板的全部字段统一套上 rsyslog 内置的 secpath-replace 属性替换器——它会在值进入模板前剥离并中和 .. 与路径分隔符序列,ruleset 与写入器未做任何其他改动:

# 官方修复(8.0.3.01000 diff):为插值字段套上 secpath-replace
%app-name%  →  %app-name:::secpath-replace%
%hostname%  →  %hostname:::secpath-replace%

# 应用范围:以下四个 dynafile 模板的全部插值字段
defaultLoc / vpxdLoc / rsyslogadminLoc / esxLoc
# 效果:值进入模板前,.. 与路径分隔符序列被剥离中和

(代码较长,可左右滑动查看完整内容)

4.2 从一条 Syslog 消息到任意文件写入

Mobeta的研究员同时还原了从一条网络消息到文件落盘的完整路径。入口是三个均无需认证的监听器:UDP/514、明文 TCP/514(imptcp)与 TLS TCP/6514(imtcp)。

消息落入 ruleset 后,命中绑定在最后的无条件路由规则——判定条件仅是 HOSTNAME 不等于 vCenter 自身主机名,任何外部发送的消息天然满足,攻击者连 APP-NAME 都无需伪造:

# ruleset 末条规则:HOSTNAME 不等于 vCenter 自身主机名即命中
if ($hostname != $$myhostname) then ?esxLoc;esxFmt

# 三个监听器(UDP/514、TCP/514、TCP/6514)均绑定该 ruleset
$InputPTCPServerBindRuleset all
$InputUDPServerBindRuleset all

落盘内容由 esxFmt 模板决定:时间戳、级别、HOSTNAME、APP-NAME 依次排开,而 %msg% 是攻击者的 MSG 正文——任意字节、逐字写入。结合 esxLoc 的路径结构,攻击载荷与写入结果如下:

# 落盘内容模板:MSG 正文为攻击者任意可控内容
# (原模板为单行,此处因排版折行展示)
$template esxFmt,"%timestamp:::date-rfc3339%
  %syslogseverity-text% %hostname% %app-name% %msg%\n"

# 攻击载荷:HOSTNAME 字段的取值
H = "../"*16 + "opt/vmware/share/htdocs/configurev2/MOBETA"

# 写入结果(经 VAMI HTTPS 端口 5480 可直接读回)
https://<vcenter>:5480/configurev2/MOBETA-syslog.log

(代码较长,可左右滑动查看完整内容)

精妙之处在于 esxLoc 模板把 HOSTNAME 拼了两次:一次作为目录、一次作为文件名前缀,且两个展开处于不同的文件系统深度(分别为 4 层与 6 层)。

攻击者利用”过多的 ../ 在根目录处会被吸收为空操作”这一文件系统特性,用 16 个前导 ../ 超量覆盖两个起点:目录展开触底后推入正向路径,由 rsyslog 自动创建为目录;文件展开从新目录触底后走相同正向路径,最终把 MOBETA-syslog.log 写进 /opt/vmware/share/htdocs/configurev2/。一个固定值、发送一次,即可确定性地在攻击者选定的路径写出内容可控的文件。

更方便的是,/opt/vmware/share/htdocs/ 恰好是 VAMI(vCenter 设备管理界面,TCP/5480)的静态文档根——种植的文件无需任何后续步骤,即可通过 HTTPS 直接读回验证。

至于从任意文件写入升级到 RCE,Mobeta 明确表示已成功实现、但不公开完整利用链,仅指出 CGI 可执行目录与 cron drop-in 是两个显然的落点方向;而在野攻击者选择的正是后者——这与 QUIRSO 的取证完全吻合。

4.3 检测规则参考

针对防御方,YARA 规则如下:

rule CVE_2026_59310_vCenter_Syslog_PathTraversal
{
&nbsp; &nbsp; meta:
&nbsp; &nbsp; &nbsp; &nbsp; reference = "https://www.vmware.com/security/advisories/VMSA-2026-0006.html"
&nbsp; &nbsp; strings:
&nbsp; &nbsp; &nbsp; &nbsp; $rfc5424_hdr = /^<[0-9]{1,3}>1 /
&nbsp; &nbsp; &nbsp; &nbsp; $trav_bare &nbsp;= "../../" ascii
&nbsp; &nbsp; &nbsp; &nbsp; $trav_pct_lo = "%2e%2e%2f" ascii
&nbsp; &nbsp; &nbsp; &nbsp; $trav_pct_up = "%2E%2E%2F" ascii
&nbsp; &nbsp; &nbsp; &nbsp; $path_htdocs = "opt/vmware/share/htdocs" ascii
&nbsp; &nbsp; &nbsp; &nbsp; $path_conf2 &nbsp;= "configurev2" ascii
&nbsp; &nbsp; condition:
&nbsp; &nbsp; &nbsp; &nbsp; $rfc5424_hdr and
&nbsp; &nbsp; &nbsp; &nbsp; ( $trav_bare or $trav_pct_lo or $trav_pct_up ) and
&nbsp; &nbsp; &nbsp; &nbsp; ( $path_htdocs or $path_conf2 )
}

(代码较长,可左右滑动查看完整内容)

#

(图片来源于网络)

#

0x05、个人观察与判断

对设计缺陷的点评:缺陷不在 rsyslog 上游,而在 VMware 自家的一行配置模板:把未认证的 RFC 5424 头字段直接拼进落盘路径。修复仅是给字段套上 secpath-replace——一行净化的缺失,代价却是整个管理平面沦陷。

对行业趋势的思考:披露到在野利用的窗口已压缩至 5 天,远短于多数企业的补丁测试周期;虚拟化管理平面正被当作 Tier-0 高价值跳板,”APT 渗透 + 勒索烟幕”的组合战术料将常态化。

可落地的排查建议:立即核对版本并升级;排查 /etc/cron.d/ 异常文件、伪装 vmware-perf-* 的任务、root 公钥变更、陌生 SSO 管理员账户、vCenter 出站 SSH/WebSocket 连接,以及 VAMI Web 根下 rsyslogd 新建的 *-syslog.log 文件。

附一段可直接在 VCSA 上执行的排查命令参考:

# VCSA 排查命令参考
ls -la /etc/cron.d/
grep -rE 'poc59310|vmware-perf|vpxd-stats' /etc/cron.d/ /etc/systemd/system/ 2>/dev/null
cat /root/.ssh/authorized_keys
find / -name "*.babyk" -o -name "vmware-perf-update.jsp" 2>/dev/null
find /opt/vmware/share/htdocs/ -name "*-syslog.log" 2>/dev/null
ss -ntp | grep -E ':22|:8080'

(代码较长,可左右滑动查看完整内容)

#

0x06、参考链接

  1. Broadcom 安全公告 VMSA-2026-0006:

https://support.broadcom.com/web/ecx/support-content-notification/-/external/content/SecurityAdvisories/0/38017

官方漏洞公告与修复版本说明(厂商公告)

  1. Mobeta 补丁级技术分析:

https://mobeta.fr/blog/vcenter-cve-2026-59309-cve-2026-59310/

补丁 diff 定位、漏洞根因与检测规则(核心技术分析)

3.Github项目地址:

https://github.com/Rubby2001/CVE-POCS/blob/main/CVE-2026-59310/poc.py


— END —

如果觉得有帮助,点个红心❤支持一下吧。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。

本文转载自:信安百科 alicy alicy《CVE-2026-59310 | VMware vCenter远程代码执行漏洞(POC)》

评论:0   参与:  0