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

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

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


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

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

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

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

相关推荐
William_cl2 分钟前
ASP.NET Core ViewData:弱类型数据交互的精髓与避坑指南
后端·asp.net·交互
奔波霸的伶俐虫3 分钟前
spring boot集成kafka学习
spring boot·学习·kafka
内存不泄露4 分钟前
基于Spring Boot和Vue的在线考试系统设计与实现
vue.js·spring boot·后端
Clarence Liu10 分钟前
LLM (1) 如何下载模型(mac)
人工智能·后端·深度学习
IT_陈寒11 分钟前
Redis 7.0 实战:5个被低估但超实用的新特性,让你的QPS提升40%
前端·人工智能·后端
华如锦14 分钟前
一.2部署——大模型服务快速部署vLLM GPU 安装教程 (Linux)
java·linux·运维·人工智能·后端·python·vllm
Qiuner24 分钟前
Spring Boot 全局异常处理策略设计(三):@ExceptionHandler 与 @ControllerAdvice 生效原理源码解析
java·spring boot·后端
Java天梯之路33 分钟前
Spring Boot 钩子全集实战(五):ApplicationContextInitializer详解
java·spring boot·后端
BingoGo35 分钟前
PHP 8.5 #[\NoDiscard] 揪出"忽略返回值"的 Bug
后端·php
Coder码匠2 小时前
Dockerfile 优化实践:从 400MB 到 80MB
java·spring boot