Apache Log4j2是一款优秀的Java日志框架。2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经阿里云安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。
2021年12月10日,阿里云安全团队发现 Apache Log4j 2.15.0-rc1 版本存在漏洞绕过
2021年12月15日,Apache 官方发布Log4j 2.16.0 以及 2.12.2 版本,修复 CVE-2021-45046 Apache Log4j 拒绝服务漏洞
2021年12月17日,Apache 官方将 CVE-2021-45046 漏洞 CVSS 评分从 3.7 分上调到 9.0 分
阿里云应急响应中心提醒 Apache Log4j2 用户尽快采取安全措施阻止漏洞攻击。
1、排查应用是否引入了Apache log4j-core Jar包,若存在依赖引入,且在受影响版本范围内,则可能存在漏洞影响。同时为了避免在Apache Log4j 2.15.0版本中某些自定义配置而可能导致的JNDI注入或拒绝服务攻击,请尽快升级Apache Log4j2所有相关应用到 2.16.0 或者 2.12.2 及其以上版本,地址 https://logging.apache.org/log4j/2.x/download.html 。
2、对于 Java 8 及其以上用户,建议升级 Apache Log4j2 至 2.16.0 及以上版本。
3、对于 Java 7 用户,建议升级至 Apache Log4j 2.12.2 及以上版本,该版本为安全版本,用于解决兼容性问题。
4、对于其余暂时无法升级版本的用户,建议删除JndiLookup,可用以下命令 zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
5、升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink
6、其余临时缓解方案可参见 https://logging.apache.org/log4j/2.x/security.html 。目前已有安全版本,强烈建议不要采用临时缓解方案进行防御。