一、框架簡介
Apache Log4j 2是一款優秀的Java日志框架。該工具重寫了Log4j框架,并且引入了大量豐富的特性。該日志框架被大量用于業務系統開發,用來記錄日志信息。
二、漏洞清單
由于Apache Log4j2某些功能存在遞歸解析功能,攻擊者可直接構造惡意請求,觸發遠程代碼執行漏洞。[漏洞鏈接](CVE - CVE-2021-44228 (mitre.org))
安全公司 Praetorian 發現 2.15.0 存在一個更嚴重的漏洞——信息泄露漏洞,可用于從受影響的服務器下載數據。[漏洞鏈接](Log4j 2.15.0 stills allows for exfiltration of sensitive data - Praetorian)
Apache Log4j2 版本 2.0-alpha1 到 2.16.0 沒有防止自引用查找的不受控制的遞歸。當日志配置使用帶有上下文查找的非默認模式布局(例如,$${ctx:loginId})時,控制線程上下文映射 (MDC) 輸入數據的攻擊者可以制作包含遞歸查找的惡意輸入數據,導致 StackOverflowError 將終止進程。這也稱為?DOS(拒絕服務)攻擊。[漏洞鏈接](CVE - CVE-2021-45046 (mitre.org))
三、影響范圍
Apache Log4j 2.x 以上
四、修復措施
建議排查Java應用是否引入log4j-api , log4j-core 兩個jar,若存在使用,極大可能會受到影響,強烈建議受影響用戶盡快進行防護 。
4.1升級Apache Log4j 2所有相關應用到最新的log4j-2.17.0-rc1
升級Apache Log4j 2所有相關應用到最新的 log4j-2.17.0-rc1 版本,地址:Release log4j-2.17.0-rc1 · apache/logging-log4j2 · GitHub
4.2 升級已知受影響的應用及組件,如:
1. spring-boot-strater-log4j22.? Apache Solr3.? Apache Flink4.? Apache Druid復制代碼
五、緊急緩解措施
如果還來不及更新版本修復,可通過下面的方法緊急緩解問題
(1) 修改jvm參數?
-Dlog4j2.formatMsgNoLookups=true
(2) 修改配置:log4j2.formatMsgNoLookups=True
(3) 將系統環境變量?
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS?設置為 true
六、感謝
辛苦了 log4j2 的社區維護者,加班加點的干活,無私奉獻! 2周發了3個版本,從2.15---->2.16--->2.17,希望有朝一日也能給開源社區做點貢獻!