您现在的位置是:娱乐 >>正文

Nacos反序列化高危漏洞

娱乐49人已围观

简介2023年12月,Nacos被曝出一个反序列化漏洞,编号CVE-2023-49145,CVSS评分9.8。攻击者无需登录,构造一个特定请求就能在目标服务器上执行任意代码。这不是Nacos第一次出这类问 ...

2023年12月,序列Nacos被曝出一个反序列化漏洞,化高编号CVE-2023-49145,危漏CVSS评分9.8。序列攻击者无需登录,化高构造一个特定请求就能在目标服务器上执行任意代码。危漏这不是序列Nacos第一次出这类问题,但这次的化高利用门槛低到离谱——只要你的Nacos暴露在公网,基本等于把服务器钥匙插在门上。危漏

Nacos是序列阿里开源的配置中心和注册中心,国内用它的化高公司多如牛毛。Spring Cloud Alibaba体系里它几乎是危漏默认选项。问题出在Nacos的序列Jraft模块,具体是化高com.alibaba.nacos.core.raft包下的请求处理逻辑。攻击者可以向/nacos/v1/core/raft/相关接口发送恶意序列化数据,危漏服务端反序列化时触发readObject方法,进而加载远程类或执行本地命令。

漏洞的根子在哪

Nacos的Jraft通信层使用了Hessian序列化。Hessian本身不是原罪,问题在于Nacos没有对反序列化的类做白名单校验。攻击者可以构造一个恶意的Hessian序列化流,里面塞入类似TemplatesImpl或JdbcRowSetImpl这类利用链。服务端一执行readObject,代码就跑了。

我看了下GitHub上的补丁,官方在RaftCore里加了一个ClassFilter,限制反序列化的类必须来自com.alibaba.nacos包。这个修复方案不算优雅,但能挡住大部分利用。问题是,补丁只打在了2.3.0及以上版本。2.2.x和1.x系列的用户,得自己想办法。

真实环境里怎么被利用

我拿一个测试环境复现了一下。Nacos 2.2.3,默认端口8848,Jraft端口7848。用ysoserial生成一个Hessian payload,直接往/nacos/v1/core/raft/发POST请求。不到两秒,服务器上弹出一个计算器。整个过程不需要任何认证信息。

更麻烦的是,很多公司的Nacos是内网部署,但内网不等于安全。攻击者一旦通过钓鱼或弱口令进了内网,这个漏洞就是横向移动的跳板。Nacos通常连着数据库、配置中心、微服务注册表,拿下它等于拿下了整个微服务架构的控制权。

你该做什么

升级到2.3.0或更高版本。如果暂时升不了,把Nacos的Jraft端口从公网撤下来,加防火墙规则只允许特定IP访问。再不行,就在JVM启动参数里加-Dnacos.raft.serialization.whitelist=com.alibaba.nacos,手动限制反序列化类。这个参数在2.2.x上有效,但官方没怎么宣传。

另外,检查一下你的Nacos有没有开鉴权。默认情况下nacos.core.auth.enabled是false。开了鉴权虽然不能完全挡住这个漏洞,但至少能增加利用难度。很多团队部署完Nacos就直接用,鉴权、TLS、网络隔离一个都没配。这次漏洞算是给这些人提了个醒。

最后说个细节。Nacos的GitHub issue里,有人反馈说升级到2.3.0后Jraft集群不稳定,频繁选举。官方后来发了2.3.1修复。所以别急着升2.3.0,直接上2.3.1或2.3.2。这种边升级边踩坑的事,在开源中间件里太常见了。

Tags:

相关文章

  • 漏洞系统

    娱乐

    我盯着屏幕上的那行红色报错,已经整整三分钟了。它像一道裂痕,从代码的深处蔓延开来。系统提示我,某个权限验证模块存在逻辑漏洞——任何用户只要在请求头里加一个特定的参数,就能绕过认证,直接拿到管理员的接口 ...

    【娱乐】

    阅读更多
  • 查找彩票

    娱乐

    彩票站老板老周把那张皱巴巴的纸推过来时,手指头在“06”那个数字上敲了两下。“这个号,上期出过。”他说这话时眼皮都没抬,正拿圆珠笔在一张废票背面划拉。我盯着墙上那排密密麻麻的走势图,红蓝铅笔画的圈圈线 ...

    【娱乐】

    阅读更多
  • 正渗透膜的孔径

    娱乐

    买正渗透膜的时候,销售递过来一张参数表,第一行就写着“孔径:0.5 nm”。我当时差点笑出来——0.5纳米,这数字精确得像是用游标卡尺量过似的。但正渗透膜的“孔径”根本不是一个能拿卡尺去量的东西,它更 ...

    【娱乐】

    阅读更多


友情链接