Yellowfin修复认证绕过三重漏洞链,直通远程代码执行

企业分析平台Yellowfin BI修复了三个由硬编码密钥导致的认证绕过漏洞(CVE-2022-47884/47885/47882),攻击者可通过这些漏洞获得未授权访问并最终实现远程代码执行(CVE-2022-47883)。研究人员还分享了在单体应用中进行安全测试的方法论建议。

认证绕过漏洞三重奏

企业分析平台Yellowfin BI修复了三个由硬编码密钥导致的认证绕过漏洞,这些漏洞为攻击者提供了通往远程代码执行(RCE)的路径。

安全公司Assetnote的研究人员首先发现了这些预认证漏洞,随后又找到了认证后的命令执行路径。这些由研究员Max Garrett发现的漏洞已被分配CVE编号,但尚未获得CVSS评分。

漏洞详情

第一个绕过漏洞(CVE-2022-47884)
位于com/hof/mi/web/action/StoryBodyAction.java中的逻辑问题,只要通过签名检查,攻击者就能以任何用户身份登录。硬编码的RSA私钥意味着任何人都能通过签名验证。

第二个绕过漏洞(CVE-2022-47885)
在JsAPI servlet中发现,攻击者可通过EXTAPI-IPID cookie进行认证,该cookie使用硬编码密钥的用户ID进行AES加密。“任何知道受害者用户ID的人都能创建有效会话,“博客文章解释道。

第三个绕过漏洞(CVE-2022-47882)
涉及REST API中JWT实现的缺陷。有效的刷新令牌ID和提取的硬编码密钥允许以任何用户身份创建有效JWT,但由于需要从成功登录获取的有效刷新令牌ID,影响仅限于权限提升。

通往RCE的路径

成功绕过认证后,第四个漏洞(CVE-2022-47883)使攻击者能够执行远程代码。研究人员发现,通过JNDI机制利用forceString小工具,可以实现命令执行。

Assetnote已在GitHub上发布了完整的漏洞利用链概念验证。

安全建议

针对类似Yellowfin这样的Java单体应用,研究人员建议:

  • 尽可能详细地映射预认证攻击面
  • 理解所有静态和动态路由
  • 确定哪些路由无需认证即可访问
  • 分析用户输入处理方式,识别需要进一步调查的问题

这些漏洞已在Yellowfin BI 9.8.1版本中修复。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计