如何找到 Log4j 的深层用法

Sap*_*1r0 3 log4j hibernate-validator maven jboss-logging

我想找到当前版本(2.15.0)之前log4j的所有用法。

我尝试使用maven的“mvn dependency:tree”,使用了几个工具(dependency-check,grype(对我不起作用),syft(对我不起作用),log4j- detector),但它们只列出了那些在 pom.xml 中指定它们后生成。

但是 - 这是我关心的问题:

例如,我正在使用一个名为 hibernate-validator(Hibernate Validator Engine)的库。我确信这个引擎使用 Jboss 日志记录,而 Jboss 日志记录又使用 log4j 2.11.2,但上面的工具都没有警告我这一点。我如何找出哪些库使用 log4j?

或者外部库不会对该漏洞造成威胁吗?

请指教。

Gui*_*met 9

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。


Pio*_*asz 5

JBoss 日志记录、Jakarta Commons Logging、SLF4J 和 Log4j 2.x API(与易受攻击的 API 不同log4j-core)等日志记录接口不直接依赖于任何日志记录后端。

默认情况下,它们根据在类路径中找到的类选择后端:如果您的类路径上没有log4j-core2.14.1 或更早版本,它们将不会使用它

最糟糕的情况是:如果他们找不到后端,他们将恢复为默认值,这可能会记录到控制台或根本不记录。

编辑:请参阅有关如何强制 Maven 仅使用 Log4j 2.15.0 (如果需要的话)的问题。


归档时间:

查看次数:

802 次

最近记录:

4 年,5 月 前