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配置文件

在这里插入图片描述

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

修改项目配置

在这里插入图片描述

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: <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Tue Nov 08 15:00:14 CST 2022</div><div>There was an unexpected error (type=Forbidden, status=403).</div></body></html>
	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版本问题

在这里插入图片描述
过滤nacoa自带的client,引入新版本。

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

踩坑:

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值