nacos权限绕过漏洞(CVE-2021-29441)修复

漏扫出服务器的nacos1.2.1版本存在权限绕过漏洞(CVE-2021-29441)漏洞,给出的建议是升级到最新版本,后面去nacos官网当时最新版本是2.0.3,果断换成了当时最新的再让安全人员漏扫发现还是存在,明明官网已经说2.0.0以上版本已经修复了,怎么还是被扫到呢?通过网上翻看资料得到如下解决办法:
1、修改 nacos的application.properties配置文件,开启服务身份识别功能

### 开启鉴权
nacos.core.auth.enabled=true

### 关闭使用user-agent判断服务端请求并放行鉴权的功能
nacos.core.auth.enable.userAgentAuthWhite=false

### 配置自定义身份识别的key(不可为空)和value(不可为空)
nacos.core.auth.server.identity.key=example
nacos.core.auth.server.identity.value=example

nacos.core.auth.server.identity.key和nacos.core.auth.server.identity.value根据你的需要,填写你的key和value
修改好后重启nacos,浏览器执行:

'http://your_ip:8848/nacos/v1/auth/users/?pageNo=1&pageSize=9'

在没有开启服务身份识别功能,执行以上是会出数据的:

{
    "totalCount": 1,
    "pageNumber": 1,
    "pagesAvailable": 1,
    "pageItems": [
        {
            "username": "nacos",
            "password": "$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu"
        }
    ]
}

添加服务身份识别功能后换在浏览器执行如果出现这个:
nacos权限绕过漏洞(CVE-2021-29441)修复_第1张图片
以及执行:

'http://127.0.0.1:8848/nacos/v1/auth/users?username=test&password=test'

出现403的说明修改成功
nacos权限绕过漏洞(CVE-2021-29441)修复_第2张图片
2、Nacos注册及配置中心开启权限认证
修改你的项目中的bootstrap.yml或bootstrap.properties:
nacos权限绕过漏洞(CVE-2021-29441)修复_第3张图片
nacos的discovery和config开启用户密码认证,用户密码就是你的nacos登录的用户名和密码,在此要注意的是,用户名和密码不要带有%、$这些特殊字符,不然你的服务会注册不上到nacos,因为它会转义

以上修改完成以后,亲测再次漏扫,nacos权限绕过漏洞(CVE-2021-29441)不会再出现

你可能感兴趣的:(java)