Dropserver 漏洞可致攻击者绕过身份验证并获得完全控制权

阅读量26632

发布时间 : 2025-03-24 15:05:35

x
译文声明

本文是翻译文章,文章原作者 Tushar Subhra Dutta,文章来源:cybersecuritynews

原文地址:https://cybersecuritynews.com/jumpserver-vulnerabilities-let-attacker-bypass-authentication/

译文仅供参考,具体内容表达以及含义原文为准。

Fit2Cloud 开发的开源特权访问管理(PAM)工具 JumpServer 中发现了一系列严重漏洞,引发了重大安全担忧。

JumpServer 作为内部网络的堡垒主机,通过一个用户友好的 Web 界面,为通过 SSH、RDP、数据库和 FTP 隧道访问内部资源提供了一个集中点。

已发现的漏洞可能使未经身份验证的攻击者绕过身份验证,并完全控制 JumpServer 基础设施。

Sonar研究人员确定了多个身份验证绕过漏洞(CVE-2023-43650、CVE-2023-43652、CVE-2023-42818、CVE-2023-46123),攻击者可利用这些漏洞冒充合法用户。

JumpServer 的集中化特性使得这些漏洞尤为危险,因为攻陷该系统可能使攻击者得以访问一个组织的整个内部网络。

这些漏洞源于架构错误,特别是微服务隔离不足。

JumpServer 的架构由几个组件组成,包括一个核心 API(用 Python – Django 编写)、一个数据库、Koko(用 Go 开发,用于隧道功能)、Celery(任务管理器)以及一个作为基于 Web 连接入口点的 Web 代理。

一个关键问题是,公钥身份验证系统缺乏对请求是否来自授权的 Koko 服务的验证。如在有漏洞的代码中所见:

def authenticate(self, request, username=None, public_key=None, **kwargs):

if not public_key:

return None

if username is None:

username = kwargs.get(UserModel.USERNAME_FIELD)

try:

user = UserModel._default_manager.get_by_natural_key(username)

except UserModel.DoesNotExist:

return None

else:

if user.check_public_key(public_key) and \

self.user_can_authenticate(user):

return user

这使得攻击者可以直接通过 HTTP 接口执行相同的请求,在无需密钥验证的情况下有效地冒充 Koko 容器。

即使启用了多因素身份验证(MFA)的账户也存在漏洞,因为在 SSH 环境中双因素身份验证的实施存在缺陷,攻击者可以操纵 “remote_addr” 参数来绕过速率限制机制。

JumpServer 3.10.12 和 4.0.0 版本已修复这些漏洞。使用 JumpServer 的组织应立即更新到这些已打补丁的版本。

修复措施包括将公钥身份验证 API 与令牌生成分离,引入身份验证状态跟踪机制,并对 “remote_addr” 参数实施基于签名的验证系统。

这些漏洞凸显了安全编码实践、全面测试以及持续安全评估的重要性,尤其是在作为敏感资源网关的系统中。

 

本文翻译自cybersecuritynews 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66