【问题解决】Nacos服务端NVDB-CNVDB-2023674205漏洞
缘起
最近(2023.03.13)客户现场要求自检有无使用Nacos,原因是Nacos存在认证绕过高危漏洞,其漏洞代码NVDB-CNVDB-2023674205
,本文就简单说一下这个事儿,以及如何解决这个问题。
以下内容中,Nacos服务端A简称A,Nacos服务端B简称B。
问题现象
可以使用已知账号密码的A的登录响应体,替换未知密码的B登录响应体来绕过认证,进入B后台。
影响范围:<=2.2.0
问题原因
Nacos使用JWT生成密钥,同样的JWT生成key会导致A的token可以给B使用。
解决办法
方法一、修改生成token的key
Nacos提供了修改默认JWT token生成key的配置项:
#启用认证
nacos.core.auth.enabled=true
#生成token的密钥
nacos.core.auth.plugin.nacos.token.secret.key=BASE64编码
推荐自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符。
方法二、升级到2.2.0.1及以后版本
目前Nacos官方在2023.03.02发布了2.2.0.1,下载地址:https://github.com/alibaba/nacos/releases/tag/2.2.0.1
以后更近版本参见:https://github.com/alibaba/nacos/releases
方法三、容器环境处理方式
对于容器环境则将 NACOS_AUTH_ENABLE=true
与 NACOS_AUTH_TOKEN=BASE64编码
作为环境变量传入即可。
参考引用: