修不完的bug:Log4j第三次发布漏洞补丁,开源社区已修复1/7受影响Java包

Posted QbitAl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修不完的bug:Log4j第三次发布漏洞补丁,开源社区已修复1/7受影响Java包相关的知识,希望对你有一定的参考价值。

行早 发自 凹非寺
量子位 报道 | 公众号 QbitAI

几乎影响整个互联网(Adobe、阿里、Amazon、GitHub、IBM、Intel、微软、腾讯、百度等)的Log4j漏洞的修补工作仍在继续。

Apache团队在发现2.16版本的问题后,又于发布新的Log4j补丁2.17.0,这已经是Log4j大规模攻击事件后第3个漏洞补丁了:

原因是在2.16.0版本中还存在漏洞,该漏洞CVSS评分为7.5(最高10分,分数越高漏洞越严重)。

2.16.0曾经修复了2.15.0中存在的两个漏洞,Log4j在Lookup评估中不能完全防止无限递归。

也就是说,2.16.0版本的Log4j可能会受到DoS(拒绝服务)攻击。

网友表示:这难道就是圣诞礼物?

不过抛开调侃不谈,这已经是Apache第三次发布Log4j漏洞补丁了,大家还是很感谢维护人员和极客们做这种出力不讨好的工作,希望2.18版本中再无漏洞:

2.16.0中的漏洞

2.16版本的问题是由阿卡迈科技公司(Akamai Technologies)的首席高级业务经理Hideki Okamoto和一位匿名漏洞研究人员发现的。

当日志配置使用带有Context Lookups的非默认模式布局(例如:$$ctx:loginId)时,控制MDC(映射调试上下文)输入数据的攻击者可以恶意输入包含递归Lookup的数据,导致StackOverflowError。

也就是DoS攻击。

针对这个漏洞Apache给出了三种缓解措施。

第一就是更新2.17.0补丁。

第二种方法是在日志记录配置的PatternLayout中,用Thread Context Map patterns (%X、%mdc 或 %MDC)替换 Context Lookups($ctx:loginId 或 $$ctx:loginId 等)。

最后一种办法就是在配置中,直接删除对Context Lookups的引用。

不过,Apache解释只有“log4j-core JAR”文件受2.16版本中漏洞的影响。仅使用“log4j-api JAR”文件而不使用“log4j-core JAR”文件不会受到影响。

漏洞危机还要持续多久

谷歌Open Source Insights团队成员发布了一份安全报告,Maven中央库中有8%以上的软件包被影响,超过35000个artifacts依赖于Log4j,对生态系统影响巨大。

因为Log4j应用广泛,只要有一个直接依赖项或间接依赖项出问题,就会影响整个包:

到目前为止,已经修复了近5000个artifacts,还有3万多个受影响。(以更新到2.16.0版本或者完全删除对Log4j依赖为修复标准)

虽然未修复的还有很大的一部分,但是仍然应该感谢来自全球各地的开源维护者、信息安全团队和消费者们对此做出的巨大努力。

参考链接:
[1]https://www.zdnet.com/article/apache-releases-new-2-17-0-patch-for-log4j-to-solve-denial-of-service-vulnerability/
[2]https://logging.apache.org/log4j/2.x/security.html
[3]https://security.googleblog.com/2021/12/understanding-impact-of-apache-log4j.html

以上是关于修不完的bug:Log4j第三次发布漏洞补丁,开源社区已修复1/7受影响Java包的主要内容,如果未能解决你的问题,请参考以下文章

Log4j 第三次发布漏洞补丁,漏洞或将长存

Bug 是改不完的……

XSS基础

openEuler 欧拉开源社区 Log4j 高危安全漏洞修复完成

Leader 对我说:「bug 是改不完的」,这几个意思?

安全风险通告Microsoft SMBv3远程代码执行漏洞安全风险通告第三次更新