第 7 章 已知问题
以下小节描述了 7.6 中的已知问题。
7.1. CVE 安全漏洞 复制链接链接已复制到粘贴板!
作为中间件集成平台,Fuse 可能会与大量第三方组件集成。无法始终排除 Fuse 的一些第三方依赖项可能会存在安全漏洞。本节记录了影响 Fuse 7.6 第三方依赖项的已知安全漏洞。
- ENTESB-12489 CVE-2019-9827 - Amazon Web Services 上的 Fuse 控制台独立
-
由于安全问题,您不应将独立 Fuse 应用程序部署到 Amazon Web Services (AWS)。这个限制适用于所有支持的独立环境(Spring Boot 1.x 和 2.x、4.X、Red Hat JBoss Enterprise Application Platform)。如果要在 AWS 上部署 Fuse 控制台独立,强烈建议您升级到 Fuse 7.7 或更高版本,并通过将
hawtio.disableProxy
系统属性设置为true
来禁用 Fuse Console 的代理 servlet。 - CVE-2017-12629 Solr/Lucene -security 绕过访问敏感数据 - CVE-2017-12629
Apache Solr 是一个流行的开源搜索平台,它使用 Apache Lucene 搜索引擎。如果您的应用程序使用 Apache Solr 与 Apache Lucene (例如,使用 Camel Solr 组件)的 Apache Solr 的组合,则可能会受此安全漏洞的影响。有关此漏洞的详情以及要采取的缓解方案,请参阅链接的安全公告。
注意Fuse 运行时 不直接 使用 Apache Solr 或 Apache Lucene。只有在集成应用程序上下文中同时使用 Apache Solr 和 Apache Lucene 时(例如,使用 Camel Solr 组件时),才会出现安全风险。
- 与 jackson-databind 安全漏洞相关的多个 CVE
使用 FasterXML
jackson-databind
库的应用程序通过取消序列化 JSON 内容来实例化 Java 对象,可能会受到 远程代码执行攻击的影响。但是,这个漏洞不是自动的,如果您进行适当的缓解方案步骤,可以避免这样做。在攻击可能前,必须至少满足以下先决条件:
您已启用了 polymorphic 类型处理,以便在
jackson-databind
中对 JSON 内容进行反序列化处理。在 Jackson JSON 中,有两种启用 polymorphic 类型处理的方法:-
使用
@JsonTypeInfo
和@JsonSubTypes
注释的组合。 -
通过调用
ObjectMapper.enableDefaultTyping ()
方法。这个选项特别危险,因为它可以有效地全局启用多态输入。
-
使用
您的 Java 类路径中有一个或多个 gadget 类,这些类尚未由当前版本
jackson-databind
列入黑名单。gadget 类被定义为执行敏感(可能被利用)操作的任何类,作为执行构造器或 setter 方法(这是可在反序列化过程中调用的方法)的副作用。Jackson JSON 库维护的 gadget 黑名单是针对远程代码执行漏洞的 defence 的最后一行。它存在大量 gadget 类,它解释了为什么有多个与
jackson-databind
漏洞相关的 CVE。有不同的 CVE 与不同类型的小工具类相关。
如果您需要在应用程序中使用
jackson-databind
库,您可以采取最重要的措施来降低风险: 避免 Jackson JSON 中的 polymorphic 类型处理,且无帐户应调用ObjectMapper.enableDefaultTyping ()
方法。
- ENTESB-12539 CVE-2019-10086 commons-beanutils: apache-commons-beanutils: 不阻止 PropertyUtilsBean 中的类属性 [fuse-7.4.0]
Camel Dozer、
camel-dozer
、组件和 Camel Shiro、camel-shiro
的组件依赖于具有 CVE 安全漏洞的commons-beanutils
库版本。如果您在以下容器之一中部署 Camel Dozer 或 Camel Shiro 组件,则应用程序可能会受到此安全漏洞的影响:- Spring Boot 1 容器
- Spring Boot 2 容器
- JBoss EAP 容器
对于 Spring Boot 1 和 Spring Boot 2 容器类型,您可以通过自定义项目的 Maven POM 文件中的依赖项来临时解决这个安全漏洞。
对于 JBoss EAP 容器类型,此时 没有可用的临时解决方案,因此我们建议您不要使用带有 EAP 上 Fuse 的 Camel Shiro 组件。发布 Fuse 7.6.0 后,会提供补丁来修复 EAP 上的 Fuse 中的
common-beanutils
依赖项。联系红帽支持以获取有关补丁的详细信息。要临时解决这个问题 Spring Boot 1 和 Spring Boot 2,请修改应用程序的 Maven POM 文件,如下所示:例如,假设对
camel-dozer-starter
工件的依赖项,如下所示:<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-dozer-starter</artifactId> </dependency>
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-dozer-starter</artifactId> </dependency>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改前面的依赖项,将其替换为以下行:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Apache Karaf 容器不受此问题的影响,因为它已默认使用
commons-beanutils
库的安全版本,Fuse Online 不受影响,因为它不使用 Camel Dozer 或 Camel Shiro 组件。