ActiveMQ 5.16.0 版本存在易受攻击的依赖 jar

问题描述

我使用的是从 Apache 下载的 ActiveMQ 5.16.0。我看到一些 jar 是有漏洞的旧版本,例如:

  1. com.google.guava_guava 19.0
  2. core_jackson-databind 2.9.10.4
  3. shiro 核心 1.5.3
  4. log4j-1.2.17

我看到上述所有易受攻击的 jar 都位于 apache-activemq-5.16.0\lib\optional\ 下。 optional目录下的jar有什么用?是否有任何最新版本的 ActiveMQ 具有所有最新的依赖项?

解决方法

可选的依赖就是:可选的。

在您的案例中使用 Shiro 作为参考。

可选依赖项:通常,您引用的库的核心功能不需要可选依赖项。在这种情况下,仅当您打算使用 Apache Shiro 特性或功能时,才需要 Shiro。 Shiro 用于安全性,因此它不会被每个使用 ActiveMQ 的人使用。

版本:很多时候(并非总是如此)可选的依赖版本不是一成不变的,在不破坏功能的情况下使用更新的版本可能是可能的。情况并非总是如此,因此,如果您打算这样做,请从首选版本开始,并仅在功能可进行测试后进行升级。

漏洞:仅仅因为存在漏洞,并不能使其适用于您的用例。仅仅因为依赖项中存在一个可以执行 XYZ 的已知漏洞,如果您的用例不使用 XYZ,它可能不会影响您。 Apache Shiro 等安全报告有助于理解这一点。

另外:我建议您为自己的 Java 项目研究 Maven 或 Gradle。这将消除一些担心这些类型的依赖项管理问题的需要,因为默认情况下,可选依赖项不包含在依赖项层次结构中。