JumpServer严重漏洞:攻击者可绕过认证掌控基础设施
由飞致云(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” 参数实施基于签名的验证系统。
这些漏洞凸显了安全编码规范、全面测试以及持续安全评估的重要性,特别是在那些作为敏感资源访问网关的系统中。
关注公众号:拾黑(shiheibook)了解更多
友情链接:
下软件就上简单下载站:https://www.jdsec.com/
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/