發現 log4j2 <= 2.14.1 存在嚴重的安全漏洞(參見https://nvd.nist.gov/vuln/detail/CVE-2021-44228)。如何更新 Spring Boot 應用程式的 pom.xml 以確保 log4j2 的所有(遞回)用法都使用版本 2.15.0?
uj5u.com熱心網友回復:
彈簧靴 “默認”不受 CVE-2021-44228(log4shell)。
盡管版本[2 - 2.6.1](任何-starter)取決于log4j-api和slf4j-to-log4j,但
Slf4j 說:
如果您將 log4j-over-slf4j.jar 與 SLF4J API 結合使用,則除非底層實作是 log4j 2.x,否則您是安全的。
為了確定,
在 行家 檢查輸出:
mvn dependency:tree -Dincludes=*log4j*在 等級:
gradle -q dependencyInsight --dependency log4j
在spring-boot-starter-log4j2船上
我們肯定會受到影響(spring-boot > 1)!
要(通過)更新,最簡單的方法可能是:
行家:
<properties> ... <log4j2.version>2.17.0</log4j2.version><!-- as of 2021/12/19 --> </properties>..在pom中。
等級:
ext['log4j2.version'] = '2.17.0'.. 在 build.gradle 中,或:
log4j2.version=2.17.0.. 在 gradle.properties 中。
...構建、測驗、發布、部署。;(;(;(
更新:
2.16.0還修復了CVE-2021-45046
2.12.2發布 (2021/12/14)
2.17.0修復了CVE-2021-45105
鏈接:
- log4j2-vulnerability-and-spring-boot
- slf4j-log4shell
- CVE-2021-44228
- CVE-2021-45046
- CVE-2021-45105
uj5u.com熱心網友回復:
現在推薦使用
<log4j2.version>2.16.0</log4j2.version>
uj5u.com熱心網友回復:
這也會規定 spring-boot-starter-log4j2 的 log4j2 組件版本。
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j</artifactId>
<version>2.17.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencies>
</dependencyManagement>
遵循@Piotr P. Karwasz 的建議,這是一個更好的設定選擇。
更新:
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.17.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencies>
</dependencyManagement>
順便說一句,如果專案的log4j依賴只來自spring-boot-starter-log4j2,有明確的設定方式,參考spring博客
<properties>
<log4j2.version>2.17.0</log4j2.version>
</properties>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/387747.html
標籤:弹簧靴 安全 日志4j 日志4j2 log4shell
上一篇:如何在Windows10PC上找到易受攻擊的log4j程式(CVE-2021-44228)以及無法更新到固定版本時如何提供急救?
