log4j exploit - 如果 log4j 在类路径中维护但实际上没有在代码中使用,它是否仍然容易受到攻击?
log4j exploit - is it still vulnerable if log4j is maintained in classpath but not actually used in code?
这是关于 CVE-2021-44228 针对 log4j-core jar 报告的漏洞,已在 Log4J v2.15.0 中修复。
我们通过 slf4j 使用 Logback API。这已通过以下代码确认。
final StaticLoggerBinder binder = StaticLoggerBinder.getSingleton();
System.out.println(binder.getLoggerFactory());
System.out.println(binder.getLoggerFactoryClassStr());
//output:
//ch.qos.logback.classic.LoggerContext[default]
//ch.qos.logback.classic.util.ContextSelectorStaticBinder
mvn dependency:tree
在类路径中显示 log4j-core API(版本 <2.15)(直接依赖和传递依赖)。
由于在类路径中维护了 log4j-core,应用程序是否仍然存在漏洞?谢谢!
为了使漏洞对您构成风险,需要同时满足以下几点:
- 您的环境中存在相应的库
- 相应的库调用确实会在运行时在您的环境中发生
- 第 3 方用户想出了一种方法来获取他们(未经检查的)对该库调用的输入
这里没有人可以告诉你是不是“2”。和“.3”适用于您的环境。
但是:当您消除 1. 时,您知道“2”。和“3”。不再可能。或者反过来,只要您 100% 确信存在 没有 用户如何将数据输入您的系统并使其到达相应 API 的路径,那么即使将图书馆留在您的环境中,您也应该没事。但如前所述,拥有 库是链条中强制性的第一个元素。因此,尽管存在这种情况,但明天有人可能会编写代码让您达到“2”和“3”!
因此,请牢记高层管理人员的观点:业务 决策很可能是:将风险降至 0,因此请确保您甚至没有相应的 JAR 位于您的机器上。
在我的 bigcorp 环境中,命令非常简单:不要浪费任何时间来分析您的代码是否使用相应的接口。当您的项目包含易受攻击的 JAR 时,请立即升级它。期间.
这是关于 CVE-2021-44228 针对 log4j-core jar 报告的漏洞,已在 Log4J v2.15.0 中修复。
我们通过 slf4j 使用 Logback API。这已通过以下代码确认。
final StaticLoggerBinder binder = StaticLoggerBinder.getSingleton();
System.out.println(binder.getLoggerFactory());
System.out.println(binder.getLoggerFactoryClassStr());
//output:
//ch.qos.logback.classic.LoggerContext[default]
//ch.qos.logback.classic.util.ContextSelectorStaticBinder
mvn dependency:tree
在类路径中显示 log4j-core API(版本 <2.15)(直接依赖和传递依赖)。
由于在类路径中维护了 log4j-core,应用程序是否仍然存在漏洞?谢谢!
为了使漏洞对您构成风险,需要同时满足以下几点:
- 您的环境中存在相应的库
- 相应的库调用确实会在运行时在您的环境中发生
- 第 3 方用户想出了一种方法来获取他们(未经检查的)对该库调用的输入
这里没有人可以告诉你是不是“2”。和“.3”适用于您的环境。
但是:当您消除 1. 时,您知道“2”。和“3”。不再可能。或者反过来,只要您 100% 确信存在 没有 用户如何将数据输入您的系统并使其到达相应 API 的路径,那么即使将图书馆留在您的环境中,您也应该没事。但如前所述,拥有 库是链条中强制性的第一个元素。因此,尽管存在这种情况,但明天有人可能会编写代码让您达到“2”和“3”!
因此,请牢记高层管理人员的观点:业务 决策很可能是:将风险降至 0,因此请确保您甚至没有相应的 JAR 位于您的机器上。
在我的 bigcorp 环境中,命令非常简单:不要浪费任何时间来分析您的代码是否使用相应的接口。当您的项目包含易受攻击的 JAR 时,请立即升级它。期间.