Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Chapter 7. Known Issues

The following subsections describe the known issues in version 7.3.

7.1. CVE Security Vulnerabilities

As a middleware integration platform, Fuse can potentially be integrated with a large number of third-party components. It is not always possible to exclude the possibility that some third-party dependencies of Fuse could have security vulnerabilities. This section documents known security vulnerabilities affecting third-party dependencies of Fuse 7.3.

ENTESB-12489 CVE-2019-9827 - Fuse Console standalone on Amazon Web Services
Due to security concerns, you should not deploy a standalone Fuse application to Amazon Web Services (AWS). This restriction applies to all supported standalone environments (Spring Boot 1.x and 2.x, Karaf, and Red Hat JBoss Enterprise Application Platform). If you want to deploy the Fuse Console standalone on AWS, it is highly recommended that you upgrade to Fuse 7.7 or later and disable the Fuse Console’s proxy servlet by setting the hawtio.disableProxy system property to true.
CVE-2017-12629 Solr/Lucene -security bypass to access sensitive data - CVE-2017-12629

Apache Solr is a popular open source search platform that uses the Apache Lucene search engine. If your application uses a combination of Apache Solr with Apache Lucene (for example, when using the Camel Solr component), it could be affected by this security vulnerability. Please consult the linked security advisory for more details of this vulnerability and the mitigation steps to take.

Note

The Fuse runtime does not use Apache Solr or Apache Lucene directly. The security risk only arises, if you are using Apache Solr and Apache Lucene together in the context of an integration application (for example, when using the Camel Solr component).

Multiple CVEs Multiple CVEs related to jackson-databind security vulnerability

Applications that that use the FasterXML jackson-databind library to instantiate Java objects by deserializing JSON content are potentially vulnerable to a remote code execution attack. The vulnerability is not automatic, however, and it can be avoided if you take the appropriate mitigation steps.

At a minimum, the following prerequisites must all be satisfied before an attack becomes possible:

  1. You have enabled polymorphic type handling for deserialization of JSON content in jackson-databind. There are two alternative ways of enabling polymorphic type handling in Jackson JSON:

    1. Using a combination of the @JsonTypeInfo and @JsonSubTypes annotations.
    2. By calling the ObjectMapper.enableDefaultTyping() method. This option is particularly dangerous, as it effectively enables polymorphic typing globally.
  2. There are one or more gadget classes in your Java classpath, which have not yet been blacklisted by the current version of jackson-databind. A gadget class is defined as any class that performs a sensitive (potentially exploitable) operation as a side effect of executing a constructor or a setter method (which are the methods that can be called during a deserialization). The gadget blacklist maintained by the Jackson JSON library is the last line of defence against the remote code execution vulnerability.

It is the existence of a large number of gadget classes which explains why there are many individual CVEs related to the jackson-databind vulnerability. There are different CVEs related to different kinds of gadget class.

If you do need to use the jackson-databind library in your application, the most important measure you can take to mitigate the risk is this: avoid polymorphic type handling in Jackson JSON and on no account should you call the ObjectMapper.enableDefaultTyping() method.

7.2. Fuse Online

The Fuse Online distribution has the following known issues:

ENTESB-10577 Apicurito does not support YAML Open API spec files
In Fuse 7.3.0 on OpenShift, Apicurito generates OpenAPI specification files in YAML format by default, but is not capable of re-importing the generated YAML file. Only JSON format can be imported into Apicurito at the moment.
667 'null' when using "ItemAt" transformation from List<> → Number
When mapping from a List to a Double type field using the ItemAt transformation, an exception gets thrown by the data mapper.
1558 "Save as draft" and "Publish" buttons
Both the Save as draft button and the Publish button remain active, even after a user has clicked on one of the buttons and started stepping through the procedure.
698 DB Connector: SQL parser doesn’t recognize parameters for LIKE
In SQL statements containing the LIKE keyword (for example, DELETE FROM TODO WHERE task LIKE ‘:#param’), the LIKE keyword cannot be used with datamapper parameters, such as :#param.

7.3. Fuse on OpenShift

This section lists issues that affect the deployment of Fuse applications on OpenShift. For details of issues affecting specific containers, see also the sections for Spring Boot, Fuse on Apache Karaf, and Fuse on JBoss EAP. The Fuse on OpenShift distribution has the following known issues:

ENTESB-10577 Apicurito does not support YAML Open API spec files
In Fuse 7.3.0 on OpenShift, Apicurito generates OpenAPI specification files in YAML format by default, but is not capable of re-importing the generated YAML file. Only JSON format can be imported into Apicurito at the moment.
ENTESB-9420 karaf-camel-rest-sql: Build creation stuck on "Receiving source from STDIN as archive"
When attempting to build and deploy Fuse applications on some early micro versions of OpenShift Container Platform (OCP) 3.10, it is possible that the build will hang with this error. If you encounter this problem, we recommend that you upgrade to OCP 3.10.34 (or later), where this problem is fixed.
CDK-397 OCP preflight check uses docker v1 API which is no longer available

With using some older CDK versions, you are likely to encounter the following error when you try to start minishift:

minishift start
-- Starting profile 'minishift'
-- Check if deprecated options are used ... OK
-- Checking if https://mirror.openshift.com is reachable ... OK
-- Checking if requested OpenShift version 'v3.11.16' is valid ... FAIL

To avoid this issue, use CDK 3.8 (or later) with Fuse 7.3.

ENTESB-10362 multiple class javax/activation/DataHandler from different bundles

Karaf-based applications deployed to Fuse on OpenShift are affected by this issue, if they use message attachments (implying a dependency on the javax.activation package). A typical symptom of this issue would be an error message like the following:

Caused by: java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.apache.cxf.jaxrs.provider.JAXBAttachmentMarshaller.addMtomAttachment(Ljavax/activation/DataHandler;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" the class loader (instance of org/apache/felix/framework/BundleWiringImpl$BundleClassLoader) of the current class, org/apache/cxf/jaxrs/provider/JAXBAttachmentMarshaller, and its superclass loader (instance of <bootloader>), have different Class objects for the type javax/activation/DataHandler used in the signature

If you get an error message like this from your Karaf-based application deployed on OpenShift, you can fix the issue by modifying the application’s Maven project as follows. In your Maven project, create a new jre.properties file at the following location:

src/main/resources/assembly/etc/jre.properties

And add the content from this sample jre.properties file.

When the application is redeployed, this custom jre.properties file overrides the default JRE properties of the Karaf micro-container. In particular, the custom jre.properties file adds the following line to the jre-1.8 property, which is missing from the default:

javax.activation;version="1.1", \
Note

Fuse standalone Apache Karaf is not affected by this issue.

7.4. Fuse on Spring Boot

Fuse on Spring Boot has the following known issues:

ENTESB-10486 Failing CXF tests on AIX using Karaf runtime

In the Fuse 7.3 GA release, the following workaround is required to use Apache CXF with the Spring Boot standalone container on the IBM AIX 7.2 platfform. When you run a Spring Boot application, set the Java system property, java.version=1.8.0_131. For example, to run a Spring Boot application from a Maven project, enter:

mvn spring-boot:run -Djava.version=1.8.0_131

7.5. Fuse on Apache Karaf

Fuse on Apache Karaf has the following known issues:

ENTESB-10487 keycloak-cxf quickstart test fails with RH-SSO 7.3.0.GA
In the Fuse 7.3 GA release, the Quickstarts package for Apache Karaf includes the quickstarts/security/keycloak/keycloak-cxf quickstart. If you test this quickstart against Red Hat Single Sign-On (RH-SSO) 7.3.0.GA, you must make sure that the verify-token-audience property is set to false in the etc/jaxws-keycloak.json file and the etc/jaxrs-keycloak.json file. For more details, see ENTESB-10487.
ENTESB-10486 Failing CXF tests on AIX using Karaf runtime

In the Fuse 7.3 GA release, the following workaround is required to use Apache CXF with the Apache Karaf container on the IBM AIX 7.2 platfform. Edit the $KARAF_HOME/etc/system.properties file and add the following line:

java.version=1.8.0_131
ENTESB-8140 Start level of hot deploy bundles is 80 by default

In the Fuse 7.0 GA release, in the Apache Karaf container the start level of hot deployed bundles is 80 by default. This can cause problems for the hot deployed bundles, because there are many system bundles and features that have the same start level. To work around this problem and ensure that hot deployed bundles start reliably, edit the etc/org.apache.felix.fileinstall-deploy.cfg file and change the felix.fileinstall.start.level setting as follows:

felix.fileinstall.start.level = 90
ENTESB-7664 Installing framework-security feature kills karaf

The framework-security OSGi feature must be installed using the --no-auto-refresh option, otherwise this feature will shut down the Apache Karaf container. For example:

feature:install -v --no-auto-refresh framework-security

7.6. Fuse on JBoss EAP

Fuse on JBoss EAP has the following known issues:

ENTESB-10400 Performance regression in camel-cbr-xpath integration example on EAP
Testing has revealed a performance regression affecting the integration of XPath with Camel on Fuse 7.3 on JBoss EAP. The test case involves a Camel content-based route that evaluates the message’s content against a specified XPath expression.
ENTESB-10401 Performance regression in camel-cxf-proxy-xslt integration example on EAP
Testing has revealed a performance regression affecting the integration of the Camel XSLT component with Fuse 7.3 on JBoss EAP. The test case involves sending a SOAP message to a CXF endpoint, where the messages is then processed by an XSL script that is invoked through the Camel XSLT component.
ENTESB-10402 Performance regression in Fuse Http Camel SSH integration example on EAP
Testing has revealed a performance regression affecting the integration of the Camel SSH component with Fuse 7.3 on JBoss EAP. The test case involves sending a HTTP message to a Jetty HTTP endpoint, where the message is then used to invoke an SSH endpoint (using the Camel SSH component).

7.7. Apache Camel

Apache Camel has the following known issues:

ENTESB-7469 Camel Docker component cannot use Unix socket connections on EAP
Since Fuse 7.0, the camel-docker component can connect to Docker only through its REST API, not through UNIX sockets.
ENTESB-5231 PHP script language does not work
The PHP scripting language is not supported in Camel applications on the Apache Karaf container, because there is no OSGi bundle available for PHP.
ENTESB-5232 Python language does not work
The Python scripting language is not supported in Camel applications on the Apache Karaf container, because there is no OSGi bundle available for Python.
ENTESB-2443 Google Mail API - Sending of messages and drafts is not synchronous
When you send a message or draft, the response contains a Message object with an ID. It may not be possible to immediately get this message via another call to the API. You may have to wait and retry the call.
ENTESB-2332 Google Drive API JSON response for changes returns bad count of items for the first page
Google Drive API JSON reponse for changes returns bad count of items for the first page. Setting maxResults for a list operation may not return all the results in the first page. You may have to go through several pages to get the complete list (that is by setting pageToken on new requests).