Apache Commons Text 库中修补的一个严重缺陷引发了与去年几乎无处不在的开源组件Log4j中出现的“Log4Shell”错误的比较。然而,在 3 月份发现并报告 Commons Text 漏洞的研究人员淡化了其相对影响,同时承认与“Log4Shell”漏洞相似,该漏洞被广泛认为是有史以来最严重的漏洞之一。
“漏洞确实非常相似,” GitHub安全实验室首席研究员Alvaro Muñoz说。
“Apache Commons Text代码似乎基于Log4j代码,因为它们都支持多个Lookup源的插值。Log4j启用了JNDI查找[而]Apache Commons Text和Apache Commons Configuration允许脚本查找——两者都可能导致RCE。因此,影响非常大。
“但是,值得记住的是,问题的严重性是根据影响和可能性来计算的,对于Apache Commons Text,不受信任的数据流入 ACT 接收器的可能性要低得多。”
Apache Commons Text执行文本操作,例如转义、计算字符串差异以及用通过插值器查找的值替换文本中的占位符。开源库Log4j是一个基于Java的日志记录实用程序。
跟踪为CVE-2022-42889的Commons Text错误于10月13日出现,并带有Apache软件基金会(ASF)安全公告。
该漏洞集中在库变量插值功能的不安全实现上,即某些默认查找字符串可能会接受来自远程攻击者的不受信任的输入,例如DNS请求、URL或内联脚本。
Rapid7昨天发布的一项技术分析也试图平息对该漏洞的炒作,其CVSS得分为9.8,但在严重性方面仍接近Log4Shell的完美10。
与Log4j中易受攻击的字符串替换相比,易受攻击的“StringSubstitutor插值器的使用范围要小得多,并且这种插值器的性质意味着,与Log4Shell中那样仅与此类精心设计的字符串进行交互相比,获取易受攻击对象的精心制作输入的可能性要小得多,”说Rapid7.
ASF的安全响应项目经理Arnout Engelen回应了这些观点:“在Log4Shell中,可以从日志消息正文中进行字符串插值,该正文通常包含不受信任的输入。在Apache Common Text issue中,相关方法是明确意图并明确记录以执行字符串插值的,因此应用程序不太可能在没有适当验证的情况下无意中传递不受信任的输入。”
该漏洞影响Apache Commons Text 1.5到1.9版本以及所有JDK版本,并已在1.10版本中进行了修补。
Engelen说:“当使用字符串替换功能时,一些可用的插值器可以触发网络访问或代码执行。这是有意的,但这也意味着如果应用程序在传递给替换的字符串中包含用户输入而未对其进行适当清理,则攻击者将允许攻击者触发这些插值器。
“出于这个原因,Apache Commons Text团队决定更新配置,使其更加‘默认安全’,从而减轻无法验证输入的影响,并且不会让攻击者访问这些插值器。
“但是,仍然建议用户谨慎对待不受信任的输入。我们目前不知道有任何应用程序将不受信任的输入传递给替代者,因此在Apache Commons Text 1.10.0之前会受到此问题的影响。”
Rapid7建议开发人员和维护人员注意后续供应商建议,安装“可用的补丁,并优先考虑供应商表明其实施可能可远程利用的任何地方”。
评论已关闭。