【问题解决】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=trueNACOS_AUTH_TOKEN=BASE64编码 作为环境变量传入即可。


参考引用:

  • https://github.com/alibaba/nacos/issues/7127
  • https://github.com/alibaba/nacos/issues/9744
  • https://github.com/alibaba/nacos/issues/10060
  • https://nacos.io/zh-cn/blog/announcement-token-secret-key.html
  • https://nacos.io/zh-cn/docs/v2/guide/user/auth.html

你可能感兴趣的:(信息安全,问题解决,java,开发语言)