領先一步
VMware 提供培訓和認證,以加速您的進展。
了解更多更新: 自此部落格文章發佈以來,已發佈 新的 logback 1.2.9 版本。 雖然這修復了安全性問題,但利用的前提非常不同,因為它們「需要寫入 logback 的配置文件」。 Log4J 也發布了新的 2.17.0 版本,其中包含 CVE-2021-45046 和 CVE-2021-45105 的修復程式。 Spring Boot
2.5.8
和2.6.2
已經發佈,並提供 logback 1.2.9 和 Log4J 2.17.0 的依賴管理。 Log4J 2.17.1 包含 CVE-2021-44832 的修復程式
您可能已在新聞中看到,已報告了針對流行的 Log4J2 函式庫的新零日漏洞,該漏洞可能允許攻擊者遠端執行程式碼。 該漏洞已報告為 CVE-2021-44228,針對 log4j-core
jar,並已在 Log4J v2.15.0 中修復。
Spring Boot 使用者只有在 將預設記錄系統切換到 Log4J2 時,才會受到此漏洞的影響。 我們包含在 spring-boot-starter-logging
中的 log4j-to-slf4j
和 log4j-api
jar 無法自行被利用。 只有使用 log4j-core
並在記錄訊息中包含使用者輸入的應用程式才會受到攻擊。
我們即將推出的 v2.5.8 和 v2.6.2 版本(預計於 2021 年 12 月 23 日發布)將會採用 Log4J v2.17.0,但由於這是一個非常嚴重的漏洞,您可能想要覆寫我們的依賴管理並儘早升級您的 Log4J2 依賴。
對於 Maven 使用者,您可以按照 這些說明 並設定 log4j2.version
屬性。
例如,如果您使用我們的父 POM,您可以設定 log4j2.version
屬性
<properties>
<log4j2.version>2.17.1</log4j2.version>
</properties>
如果您未使用我們的父項,而是匯入 spring-boot-dependencies
BOM,則需要使用 <dependencyManagement>
區段
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.17.1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
... other dependencies including spring-boot-dependencies
</dependencies>
</dependencyManagement>
若要檢查覆寫是否已套用,請執行 ./mvnw dependency:list | grep log4j
並檢查版本是否為 2.17.1。
對於 Gradle 使用者,您可以按照 這些說明 並更新版本屬性、匯入 BOM 或使用 resolutionStrategy
。
對於大多數使用者,設定 log4j2.version
屬性就足夠了
ext['log4j2.version'] = '2.17.1'
如果您使用 Gradle 的平台支援而不是我們的依賴管理外掛程式,則可以新增對 Log4J BOM 的依賴
implementation(platform("org.apache.logging.log4j:log4j-bom:2.17.1"))
如果您無法使用這些方法中的任何一種,則可以宣告 resolutionStrategy
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.apache.logging.log4j') {
details.useVersion '2.17.1'
}
}
}
無論您選擇哪種方法,若要檢查覆寫是否已套用,您可以執行 ./gradlew dependencyInsight --dependency log4j-core
並尋找版本 2.17.1。