ActiveMQ 版本 5.16.0 存在易受攻击的依赖 jar
ActiveMQ version 5.16.0 has vulnerable dependency jar
我正在使用从 Apache 下载的 ActiveMQ 5.16.0。我看到一些 jar 是有漏洞的旧版本,例如:
- com.google.guava_guava 19.0
- core_jackson-databind 2.9.10.4
- shiro-core 1.5.3
- 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。这将消除一些担心这些类型的依赖关系管理问题的需要,因为默认情况下,可选依赖关系不包含在依赖关系层次结构中。
我正在使用从 Apache 下载的 ActiveMQ 5.16.0。我看到一些 jar 是有漏洞的旧版本,例如:
- com.google.guava_guava 19.0
- core_jackson-databind 2.9.10.4
- shiro-core 1.5.3
- 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。这将消除一些担心这些类型的依赖关系管理问题的需要,因为默认情况下,可选依赖关系不包含在依赖关系层次结构中。