搜索

nacos集群raft反序列化漏洞

发表于 2026-10-17 02:26:51 来源:烟消火灭网

2021年9月,序列Nacos官方发布安全公告,化漏确认了Nacos集群在特定配置下存在raft反序列化漏洞,序列攻击者可以构造恶意请求,化漏直接绕过鉴权,序列在服务器上执行任意代码。化漏这不是序列理论上的威胁,而是化漏实实在在能被利用的入口。

问题出在Nacos的序列raft协议实现上。Nacos为了在集群节点间同步配置和服务发现数据,化漏内置了基于raft的序列一致性算法。在实现中,化漏节点之间通过hessian协议进行数据序列化传输。序列Hessian本身支持多态类型绑定,化漏如果攻击者能控制反序列化的序列内容,就能触发Java原生反序列化链,最终执行系统命令。

最关键的细节是,这个漏洞并不需要攻击者直接访问到Nacos集群的raft端口。在部分部署场景下,Nacos的raft通信端口(默认7848)和主服务端口(8848)是暴露在同一网络命名空间中的。更糟的是,某些版本中,raft的请求处理逻辑在反序列化之前没有做任何身份校验。也就是说,只要目标Nacos节点能路由到你的请求,你就拿到了通往系统内部的钥匙。

我见过一个真实的案例。某互联网公司的微服务配置中心用的是Nacos,集群部署在K8s内部,安全组规则只允许内部服务访问。但运维人员为了方便排查问题,把8848端口映射到了跳板机。结果攻击者通过钓鱼邮件进入内网后,扫到了这个端口,直接利用漏洞执行了`curl`命令,把/etc/shadow文件传了出去。整个过程没有触发任何告警,因为流量是从内网发起的,防火墙策略完全放行。

修复方案其实不复杂。官方在1.4.2版本中增加了对raft协议请求的鉴权校验,并限制了hessian反序列化的允许类列表。但很多团队升级后并没有真正验证过。我测试过几个生产环境,发现有些虽然升级到了1.4.2以上,但配置文件中仍然保留了`nacos.core.auth.enabled=false`的默认值,导致鉴权形同虚设。

另一个容易被忽视的点是,即使修复了反序列化漏洞,Nacos的raft协议仍然存在其他风险。比如,节点之间的通信没有做加密,攻击者如果能在网络层面做中间人,依然可以篡改同步数据。这属于设计层面的遗留问题,短期内恐怕难以根治。

所以,如果你还在用Nacos,别只盯着版本号。检查一下实际的运行配置,确认鉴权开关真的打开了,确认raft端口没有暴露到不可信网络。最好做一次渗透测试,用现成的利用脚本打一下自己的集群,看能不能拿到shell。安全这东西,纸上谈兵没用,得真刀真枪试过才知道。

随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by nacos集群raft反序列化漏洞,烟消火灭网   sitemap

回顶部