Yellowfin tackles auth bypass bug trio that opened door to RCE
Adam Bannister
2023年1月25日 16:23 UTC
企业 | RCE | 漏洞
认证前后的攻击路径
流行的企业分析平台Yellowfin BI修复了三个因使用硬编码密钥而导致的认证绕过漏洞。
安全公司Assetnote的研究人员在发现这些预认证漏洞后,进一步找到了一个认证后的命令执行路径。
这些由Assetnote的Max Garrett发现的漏洞已被分配CVE编号,但尚未获得CVSS评分。
绕过机制
这些问题是通过形如session.setAttribute("SessionData",BEAN)
的认证逻辑实例发现的。
根据Garrett和Assetnote首席技术官兼联合创始人Shubham Shah于1月24日发布的博客文章,第一个认证绕过(CVE-2022-47884)源于com/hof/mi/web/action/StoryBodyAction.java
中的逻辑,“StoryBoardAction允许我们以任何用户身份登录,只要通过签名检查”。硬编码的私钥RSA意味着任何人都可以通过签名检查。
第二个绕过在JsAPI servlet中发现,攻击者可以通过EXTAPI-IPID cookie进行认证,该cookie使用硬编码密钥的用户ID进行AES加密(CVE-2022-47885)。博客文章解释说:“因此,任何知道受害者用户ID的人都可以创建有效会话作为其账户。”
第三个也是最后一个绕过(CVE-2022-47882)集中在Yellowfin在REST API中对JWT的不佳实现上。有效的刷新令牌ID和提取的硬编码密钥使得可以以任何用户身份创建有效的JWT,尽管其影响仅限于权限提升,因为需要从成功的/api/refresh-tokens
登录生成有效的刷新令牌ID。
远程代码执行
在实现认证绕过后,第四个漏洞——CVE-2022-47883——使攻击者能够执行远程代码执行(RCE)。
研究人员注意到Yellowfin BI连接到任意数据源以将数据拉取到应用程序中,因此调查了JNDI或JDBC注入是否可能实现命令执行——而通过使用forceString小工具,JNDI机制确实被证明是有效的。
Assetnote已在GitHub上发布了完整的漏洞利用链概念验证。
这些漏洞已在Yellowfin BI 9.8.1中修复。
单体应用建议
Shah告诉The Daily Swig:“在我们对企业应用的评估中,我们经常发现导致重大安全影响的硬编码密钥(例如,我们在VMWare AirWatch中发现的漏洞)。许多企业产品由于资格和销售流程难以获取。然而,一旦获得源代码,通常存在许多可以轻松利用的关键漏洞。”
Yellowfin是一个Java单体应用,Shah和Garrett为其他在类似代码库中寻找漏洞的安全研究人员提供了方法建议:“尽可能详细地绘制预认证攻击面,”他们表示,“了解所有路由,包括静态和动态的,然后确定哪些部分无需任何认证即可访问。”
在绘制预认证路由后,“确定这些路由如何处理用户输入,并了解哪些路由接收什么用户输入”,他们继续说道。这将揭示值得进一步调查的问题,“仅基于控制器或参数的名称”。
您可能还喜欢:AWS修复CloudTrail API监控工具中的绕过漏洞
企业 | RCE | 漏洞 | 研究 | Java | 认证 | 黑客技术 | API | 黑客新闻 | 网络安全 | 组织 | 核心