【緊急】繼續折騰,Log4j再發2.1.6,強烈建議升級

Tom彈架構發表於2021-12-15

背景

繼前天正式釋出的2.15.0之後,Apache log4j 2 團隊宣佈 Log4j 2.16.0 釋出!

由於SLF4J適配相容性的中斷,Log4j 現在釋出兩個版本的SLF4J to Log4j的介面卡。log4j-slf4j-impl對應 SLF4J 1.7.x 及更早版本;log4j-slf4j18-impl對應SLF4J 1.8.x 及更高版本一起使用。SLF4J-2.0.0 alpha 版本目前還不完全支援。

強烈推薦升級2.16.0。

修正錯誤

1、LOG4J2-3208:預設禁用 JNDI。需要 log4j2.enableJndi設定為 true 以允許 JNDI。無論是Log4j2還是其它使用了JNDI的Java類庫中,在不受保護的上下文中使用JNDI都具有一個很大的問題安全風險。

2、LOG4J2-3211:完全刪除對Message Lookups的支援。目的是採取強化措施以防止 CVE-2021-44228,此舉措不是修復 CVE-2021-44228所必須的。

受漏洞影響的Apache專案

另外Apache 安全團隊在今天公佈了受log4j CVE-2021-44228影響的Apache專案。可以根據下面列表進行排查:

專案 是否受到影響 解決方案
Apache Archiva 2.2.6正式發行版將解決這個問題
Apache Druid 更新到0.22.1
Apache EventMesh 暫無明確方案
Apache lceberg
Apache Flink 暫無明確方案
Apache Fortress 更新到2.0.7
Apache Geode 更新到1.12.6,1.13.5,1.14.1
Apache Guacamole
Apache Hadoop 使用log4j 1.x
Apache Hive 暫無明確方案
Apache Jena 暫無明確方案
Apache JMeter 暫無明確方案
Apache JSPWiki 暫無明確方案
Apache Log4J1.2 存在類似漏洞 參考「CVE-2021-4104]漏洞,JMS呼叫JNDI北洞
Apache Log4J2.x 更新到2.16.0
Apache Log4Net
Apache OFBiz 更新到18.12.03
Apache Ozone 更新到1.2.1
Apache skyWalking 更新到8.9.1
Apache Solr 更新到8.11.1
Apache Spark 使用log4j 1.x
Apache Struts 暫無明確方案
Apache Tomcat
Apache TrafficControl 暫無明確方案
Apache ZooKeeper 使用log4j 1.x
Apache Calcite Avatica 更新到1.20.0
Apache CloudStack

在 2.15.0 版本之前,Log4j 會在模式佈局(Pattern Layout)中包含的訊息或引數中自動解析 Lookups。這行為不再是預設值,必須通過指定啟用%msg{lookup}。Apache Log4j 2.16.0至少需要Java 8才能構建和執行。Log4j 2.12.1是最後一個支援Java 7的版本。Java 7不是Log4j團隊的長期支援版本。

升級措施

本人在前幾天緊急連載了關於此漏洞的修復教程: Apache Log4j任意程式碼執行漏洞安全風險升級修復教程 ,此方法依然有效。

如果你懶得看之前的文章,可以通過直接升級jar包的方式,加入如下依賴:


<properties>
    <java.version>1.8</java.version>
    <log4j2.version>2.16.0</log4j2.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${log4j2.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>${log4j2.version}</version>
    </dependency>
</dependencies>

如果你的是SpringBoot專案,只需修改版本號:


<properties>
    <java.version>1.8</java.version>
    <log4j2.version>2.16.0</log4j2.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
</dependencies>

參考資料

有關Apache Log4j2的完整資訊,包括有關如何提交錯誤報告、補丁或改進建議,請參閱Apache Apache Log4j2網站:

https://logging.apache.org/log4j/2.x/

事件時間線

[2021/12/14] Apache log4j 2 團隊宣佈 Log4j 2.16.0 釋出

[2021/12/13] 官方釋出正式釋出2.15.0,Java日誌庫Log4j2注入漏洞復現

[2021/12/11] Spring Boot應對Log4j2注入漏洞官方指南

[2021/12/10] 知名Java日誌元件Log4j2爆出嚴重0 day漏洞

本文為“Tom彈架構”原創,轉載請註明出處。技術在於分享,我分享我快樂!
如果本文對您有幫助,歡迎關注和點贊;如果您有任何建議也可留言評論或私信,您的支援是我堅持創作的動力。

原創不易,堅持很酷,都看到這裡了,小夥伴記得點贊、收藏、在看,一鍵三連加關注!如果你覺得內容太乾,可以分享轉發給朋友滋潤滋潤!

相關文章