您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Apache Log4j 2.17.0能夠解決什么問題”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Apache Log4j 2.17.0能夠解決什么問題”這篇文章吧。
Apache Log4j 2.17.0 版本已正式發布,解決了被發現的第三個安全漏洞 CVE-2021-45105。
Apache Log4j2 版本 2.0-alpha1 到 2.16.0 沒有防止 self-referential 查找的不受控制的遞歸。當日志配置使用非默認的 Pattern Layout 與 Context Lookup(例如,$${ctx:loginId})時,控制線程上下文映射 (MDC) 輸入數據的攻擊者可以制作包含遞歸查找的惡意輸入數據,導致 StackOverflowError,從而終止進程。這也稱為 DoS 攻擊。
從 2.17.0 版本開始(針對 Java 8),只有配置中的查找字符串才會被遞歸擴展;在任何其他用法中,僅解析頂層查找,不解析任何嵌套查找。
在以前的版本中,可以通過確保你的日志記錄配置執行以下操作來緩解此問題:
在日志記錄配置的 PatternLayout 中,用 Thread Context Map 模式(%X、%mdc 或 %MDC)替換 ${ctx:loginId} 或 $${ctx:loginId} 等 Context Lookups。
否則,在配置中刪除對 ${ctx:loginId} 或 ${ctx:loginId} 等 Context Lookups 的引用;它們源自應用程序外部的源,如 HTTP headers 或 user input.。
2.17.0 版本的具體更新內容包括有:
修復字符串替換遞歸。修復 LOG4J2-3230
將 JNDI 僅限于 java 協議。默認情況下,JNDI 將保持禁用狀態。將 JNDI 啟用屬性從“log4j2.enableJndi”重命名為“log4j2.enableJndiLookup”、“log4j2.enableJndiJms”和“log4j2.enableJndiContextSelector”。修復 LOG4J2-3242
JNDI 僅限于 java 協議。默認情況下,JNDI 將保持禁用狀態。啟用屬性已重命名為“log4j2.enableJndiJava”。修復 LOG4J2-3242
不要將 log4j-api-java9 和 log4j-core-java9 聲明為依賴項,因為這會導致 Maven enforcer 插件出現問題。修復 LOG4J2-3241
解析屬性文件過濾器時的 PropertiesConfiguration.parseAppenderFilters NPE。修復 LOG4J2-3247
Syslog Appender 的 Log4j 1.2 bridge 默認為端口 512 而不是 514。修復 LOG4J2-3249
Log4j 1.2 bridge API 將 Syslog 協議硬編碼為 TCP。修復 LOG4J2-3237
以上是“Apache Log4j 2.17.0能夠解決什么問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。