我想在當前版本 (2.15.0) 之前找到 log4j 的所有用法。
我嘗試使用 maven 的“mvn dependency:tree”,使用了幾種工具(dependency-check、grype(對我不起作用)、syft(對我不起作用)、log4j-detector)但它們只列出了哪些類在 pom.xml 中指定它們后生成。
但是 - 這是我關心的問題:
例如,我正在使用一個名為 hibernate-validator(Hibernate Validator Engine)的庫。我確信這個引擎使用 Jboss 日志記錄,而后者又使用 log4j 2.11.2,但是我上面的任何工具都沒有警告我這一點。如何找出哪些庫使用 log4j?
或者外部庫不是這個漏洞的威脅?
請指教。
uj5u.com熱心網友回復:
Hibernate Validator 引導到這里。您的依賴項樹中沒有它,因為 Hibernate Validator 和 JBoss Logging 根本不使用它。
Hibernate Validator對 Log4j 2有一個測驗依賴,但它只是一個測驗依賴。因此,為什么您在依賴關系樹中看不到它,這是準確的。
我正在發布具有更新測驗依賴項的新 HV 版本,但這對您的應用程式來說不是問題,它們不會通過 Hibernate Validator 依賴 Log4j 2。
請參閱https://github.com/hibernate/hibernate-validator/blob/main/engine/pom.xml#L119。
更新:為了避免安全掃描程式的誤報,我發布了 Hibernate Validator 7.0.2.Final 和 6.2.1.Final。
uj5u.com熱心網友回復:
日志介面,如 JBoss 日志、Jakarta Commons Logging、SLF4J 和 Log4j 2.x API(與易受攻擊的不同log4j-core)不直接依賴于任何日志后端。
默認情況下,他們根據在類路徑中找到的類選擇后端:如果您的類路徑中沒有log4j-core2.14.1 或更早版本,他們將不會使用它。
您可能會遇到的最壞情況:如果他們找不到后端,他們將恢復為默認值,這可能會登錄到控制臺或根本不登錄。
編輯:看到這個問題上如何強制Maven來只使用Log4j 2.15.0(如果它是在所有需要)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/386416.html
