Apache Log4j2远程代码
执行绕过漏洞(CVE-2021-45046)
Apache Log4j2 在近几日爆出漏洞 CVE-2021-44228,攻击者在可以控制部分日志内容的情况下,通过插入恶意数据,导致log4j2在解析时触发漏洞,造成代码执行。
而针对该漏洞出现了新的绕过方式,在特定配置条件下可以无视某些缓解措施,继续利用。目前官方已经发布新版本log4j-2.16.0 针对该问题进行修复,并分配漏洞编号 CVE-2021-45046。
长亭安全研究人员经过研判分析后确认此绕过漏洞依赖于特定的配置场景才能进行触发,但若一旦满足漏洞利用条件,采用修改jvm参数、系统环境变量、修改配置三种缓解措施均在绕过的风险,建议未修复或者已经采用了缓解措施的用户参考修复方案对漏洞进行修复。
漏洞描述
Log4j2此前爆出CVE-2021-44228 漏洞,攻击者可以通过构造恶意数据植入进日志记录中时即可导致任意代码执行,危害极大,利用门槛极低。官方随后发布了 2.15.0 版本针对漏洞进行修复。
但官方在 15 日再次发布安全公告称,之前 2.15.0 版本所更新的安全补丁在某些配置场景下会失效,同时也会影响到如下通过配置系统或环境变量来禁用lookups机制的临时缓解方案:
-
在 jvm 参数中添加 -Dlog4j2.formatMsgNoLookups=true
-
系统环境变量中将LOG4J_FORMAT_MSG_NO_LOOKUPS 设置为true
-
log4j2 配置文件中配置log4j2.formatMsgNoLookups=true
-
PatternLayout 中配置%m{nolookups}
具体来说,当 log4j2 配置的 PatternLayout 中有使用 lookups 机制的变量且该变量解析的值由攻击者可控时,则会受到CVE-2021-44228漏洞影响:
-
对于 log4j2 <= 2.14.1及2.15.0-rc1版本,攻击者可以绕过先前 CVE-2021-44228 配置系统或环境变量来禁用lookups的临时缓解方案,再次进行 JNDI 注入漏洞的利用,实现远程代码执行。
-
对于 log4j2 2.15.0 版本,则可能会造成拒绝服务的危害。
注:之前通过删除 log4j-core jar 包中 JndiLookup.class 文件的修复方式不受此绕过漏洞的影响。
影响范围
-
Apache Log4j2 2.x <= 2.15.0 版本均受到漏洞影响(包括2.15.0-rc1及2.15.0-rc2)
解决方案
厂商已发布新版本修复漏洞,请及时自查Log4J2版本是否在影响范围内,及时将Log4J2更新到安全版本 log4j-2.16.0
https://github.com/apache/logging-log4j2/releases/tag/rel%2F2.16.0
使用 2.16.0之前版本的用户若无法升级,可通过执行以下命令删除jar包中漏洞相关的class文件,然后重启服务即可:
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
产品支持
雷池默认支持此漏洞防护,使用雷池的用户可自动防御拦截该漏洞攻击请求。
参考资料
-
https://nvd.nist.gov/vuln/detail/CVE-2021-45046
-
https://github.com/apache/logging-log4j2/releases/tag/rel%2F2.16.0
点击“阅读原文”下载长亭Log4j2 漏洞检测工具
原文始发于微信公众号(长亭安全课堂):漏洞风险提示 | Apache Log4j2远程代码执行绕过漏洞(CVE-2021-45046)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论