修复Nacos namespaces未授权访问漏洞【原理扫描】

近日,我们自己的微服务应用通过绿盟软件扫描到了有关nacos的namespaces问题,在这里记录一下,供有需要的人参考。

一、问题描述

nacos版本: 2.5.0

存在问题: Nacos namespaces未授权访问漏洞【原理扫描】

问题复现:

漏洞扫描结果:

官方明确说明:

/nacos/v2/console/namespace接口是Nacos用于展示集群中存在的命名空间列表的OpenAPI,其设计初衷是为了提供公开数据,允许所有访问者获取这些信息,类似于查询云平台支持的Region列表。因此,该接口默认不支持关闭,也未实施鉴权措施。

如果确实有安全需求要限制此接口的访问,唯一的途径是根据Nacos的源代码进行自定义修改,比如增加鉴权逻辑或者改变接口行为,随后重新编译并部署Nacos服务。

参考链接: https://www.nacos.io/blog/faq/nacos-user-question-history11025/?spm=55c5c5db.2ef5001f.0.0.73a53b7ch0jUQm

二、问题修复

这里需要下载对应nacos版本的源码程序。我的是:2.5.0

下载地址: https://github.com/alibaba/nacos/tree/2.5.0?spm=55c5c5db.2ef5001f.0.0.73a53b7ch0jUQm

然后使用idea工具打开,修改以下两个文件即可。

1、NamespaceController

bash 复制代码
@Secured(resource = AuthConstants.CONSOLE_RESOURCE_NAME_PREFIX + "namespaces", action = ActionTypes.READ)

2、NamespaceControllerV2

bash 复制代码
@Secured(resource = AuthConstants.CONSOLE_RESOURCE_NAME_PREFIX
            + "namespaces", action = ActionTypes.READ, signType = SignType.CONSOLE)

全部修改完毕后,执行打包构建命令

bash 复制代码
mvn -Prelease-nacos -DskipTests clean install -U

使用新生成的压缩包或者替换nacos-server.jar包,重启服务,问题修复。

验证:

相关推荐
darkdragonking6 小时前
由一次构建 OpenEuler 22.03 dnf源所了解到的
linux·运维·服务器
Gauss松鼠会6 小时前
GaussDB(DWS) GUC参数修改、查看
java·数据库·sql·数据库开发·gaussdb
AIFQuant6 小时前
Java 对接全球股票实时报价:高可用架构与异常处理
java·开发语言·websocket·金融·架构·股票api
未若君雅裁6 小时前
Spring Bean 作用域、线程安全与生命周期
java·安全·spring
米高梅狮子6 小时前
Ceph 分布式存储 部署
linux·运维·数据库·分布式·ceph·docker·华为云
WUYOUGYLU6 小时前
云服务器怎么选、怎么用,才不花冤枉钱
运维·服务器
曹牧6 小时前
Nginx 504
运维·nginx
奋斗的小乌龟6 小时前
langchain4j笔记-智能体系统01
java·笔记
wh_xia_jun6 小时前
用pom 的test 配置 与 jacoco
java·ide·intellij-idea
阿丰资源6 小时前
基于Spring Boot的酒店客房管理系统
java·spring boot·后端