Nacos Namespace 未授权访问漏洞: 55391

我正在参加「金石计划」

1.nacos身份绕过漏洞

Nacos Namespace 未授权访问漏洞(漏洞编号:55391)

该漏洞,在开启nacos.core.auth.enabled=true后,未登录情况下,命名空间列表依然能加载出来。

官方目前还未解决(2023-11-15),但我们通过修改nacos源码,来处理该nacos漏洞。

2.漏洞分析

Nacos是一个易于使用的平台,专为动态服务发现和配置以及服务管理而设计。可以帮助您轻松构建云原生应用程序和微服务平台。

目前,Nacos 是一个为动态服务发现和配置以及服务管理而设计的平台。Nacos Namespace部分的代码实现路由没有加入鉴权,所以即使是开启auth的情况下,照样能访问Namespace,攻击者仍然可以对Namespace进行增删改查操作。

目前厂商暂未发布修复措施解决此安全问题,建议使用此软件的用户随时关注厂商主页或参考网址以获取解决办法:github.com/alibaba/nac...

3.源码修改

这里基于nacos-2.2.3版本的源码进行修改。

对于nacos源码的构建,有兴趣的小伙伴可以参考我之前的文章:nacos适配达梦、人大金仓数据库,这里就不再过多的描述了。

通过调试可以发现NameSpace列表访问的接口,是这个:com.alibaba.nacos.console.controller.NamespaceController

通过调试可以发现,是通过com.alibaba.nacos.core.auth.AuthFilter进行权限校验的

判断的依据是,方法上面,是否有加 @Secured 注解

所以我们加上 @Secured 注解即可:(可以参考其他方法)

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

修改完,可以本地调试,查看漏洞修复情况;如果没什么问题,就可以对nacos源码进行编译打包。

mvn 复制代码
mvn -Prelease-nacos -Dmaven.test.skip=true -Dcheckstyle.skip=true clean install -U

如有不懂的,可以参考我之前的文章。

其实,该漏洞修复,也不是很难,大家赶紧去尝试一下吧。


好了,以上就是我个人的实操了。可能有些不对,大家伙,轻点喷!!!

个人理解,可能也不够全面,班门弄斧了。

好了,今天就先到这里了!!!^_^

如果觉得有收获的,帮忙点赞、评论、收藏一下,再走呗!!!

相关推荐
q***07141 小时前
Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(上)
java·spring boot·后端
郝开2 小时前
Spring Boot 2.7.18(最终 2.x 系列版本)8 - 日志:Log4j2 基本概念;Log4j2 多环境日志配置策略
spring boot·单元测试·log4j
q***49862 小时前
Spring Boot 3.4 正式发布,结构化日志!
java·spring boot·后端
dreams_dream6 小时前
Flask
后端·python·flask
serendipity_hky6 小时前
【微服务 - easy视频 | day02】全局过滤器+局部过滤器+全局拦截器
spring cloud·微服务·云原生·架构
盖世英雄酱581366 小时前
commit 成功为什么数据只更新了部分?
java·数据库·后端
追逐时光者7 小时前
小伙伴们学习 C#/.NET 相关技术栈的学习心得和路线
后端·.net
gelald7 小时前
Spring Security 核心组件
后端·spring