流行的企业分析平台Yellowfin BI中修复了因使用硬编码密钥而导致的三个身份验证绕过漏洞。在发现预身份验证漏洞后,Assetnote的安全研究人员随后找到了一条执行命令的身份验证后路径。这些由Assetnote的Max Garrett发现的漏洞已分配了CVE编号,但尚未分配CVSS分数。
这些问题是通过session.setAttribute("SessionData",BEAN)指示的身份验证逻辑实例发现的。
一种身份验证绕过(CVE-2022-47884) 的出现是因为com/hof/mi/web/action/StoryBodyAction.java包含“StoryBoardAction允许我们以任何用户身份登录的逻辑,只要通过签名检查”,根据1月24日Garrett和Assetnote首席技术官兼联合创始人Shubham Shah发表的一篇博文。硬编码的RSA私钥意味着任何人都可以通过签名检查。
在JsAPI servlet中发现的第二个绕过意味着攻击者可以通过EXTAPI-IPID cookie进行身份验证,该cookie使用硬编码密钥的用户ID(CVE-2022-47885)进行AES加密。
“因此,任何知道受害者用户ID的人都可以创建一个有效的会话作为他们的帐户,”博客文章解释道。
第三个也是最后一个绕过(CVE-2022-47882)的重点是Yellowfin在REST API中对JWT的次优实现。
有效的刷新令牌ID和提取的硬编码密钥允许以任何用户身份创建有效的JWT,尽管鉴于需要从成功的/api/refresh-tokens登录生成有效的刷新令牌ID,影响仅限于特权升级。
在执行身份验证绕过后,第四个漏洞CVE-2022-47883使攻击者能够执行远程代码执行(RCE)。
注意到Yellowfin BI与任意数据源的连接以将数据提取到应用程序中,研究人员调查了JNDI或JDBC注入是否可以启用命令执行 - 并且JNDI机制通过使用forceString小工具,适当地证明是富有成果的。
Assetnote在GitHub上发布了完整的概念验证利用链。
这些漏洞已在Yellowfin BI 9.8.1中得到修补。
“在我们对企业应用程序的评估中,我们经常发现会导致重大安全影响的硬编码密钥(例如,我们在VMWare AirWatch 中的错误),”Shah说。“由于资质和销售流程,许多企业产品很难获得。然而,一旦获得源代码,通常会有许多可以轻松利用的关键漏洞。”
Yellowfin是一个Java整体应用程序,Shah和Garrett为其他在类似代码库中搜索的安全研究人员提供了方法论建议:“尽可能详细地绘制出预身份验证攻击面,”他们说。
“了解所有静态和动态路由,然后确定这些路由中的哪一部分无需任何身份验证即可实际访问。”
在映射预身份验证路由后,“确定这些路由如何处理用户输入,并了解哪些路由接受哪些用户输入”,他们继续说道。这将发现需要进一步调查的问题,“仅基于控制器或参数的名称”。
评论已关闭。