Nacos提权漏洞修复

漏洞详情

Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。若您Nacos未修改 secret.key,则攻击者可利用默认secret.key生成JWT Token,从而造成权限绕过访问到相关API接口。

Nacos 官方于 2023年3月2日发布 2.2.0.1 版本。该版本移除了默认鉴权插件中依赖的nacos.core.auth.plugin.nacos.token.secret.key默认值,在部署新版本时必须要输入自定义的有效token.secret.key 用于登陆后的accessToken生成。

修复建议

  1. 根据官方文档修改secret.key 为随机值,并注意保密。
  2. 升级至最新版本

修复过程

Nacos版本 2.2.0

修改Nacos配置文件

Nacos提权漏洞修复_第1张图片

  1. secret.key 使用随机密码生成的Base64
  2. 开启鉴权:nacos.core.auth.enabled = true

修改项目配置

Nacos提权漏洞修复_第2张图片

spring:
  cloud:
    nacos:
      discovery:
        password: nacos
        username: nacos
        server-addr: 127.0.0.1:8848
      config:
        password: nacos
        username: nacos
        server-addr: 127.0.0.1:8848

注册中心和配置中心用户名密码添加

启动服务

java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([localhost:8848]) tried: failed to req API:localhost:8848/nacos/v1/ns/instance. code:403 msg: 

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Tue Nov 08 15:00:14 CST 2022
There was an unexpected error (type=Forbidden, status=403).
at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:464) at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:386) at com.alibaba.nacos.client.naming.net.NamingProxy.deregisterService(NamingProxy.java:205) at com.alibaba.nacos.client.naming.NacosNamingService.deregisterInstance(NacosNamingService.java:244)
如果发现报403错误,是Nacos版本问题

Nacos提权漏洞修复_第3张图片
过滤nacoa自带的client,引入新版本。

版本更新后就可以正常启动。

踩坑:

开启鉴权后,在Nacos管理端修改Nacos密码,点击提交会提示权限校验失败,但此时密码其实已经更改了。这块要注意。

你可能感兴趣的:(java,安全,开发语言)