Red Hat Training

A Red Hat training course is available for Red Hat Fuse

第7章 既知の問題

以下の項ではバージョン 7.2 の既知の問題について説明します。

7.1. CVE セキュリティー脆弱性

Fuse はミドルウェア統合プラットフォームであるため、多くのサードパーティーコンポーネントと統合される可能性があります。そのため、サードパーティーの依存関係の一部にセキュリティーの脆弱性がある可能性を常に排除することは困難です。ここでは、Fuse 7.2 のサードパーティーの依存関係に影響する既知のセキュリティー脆弱性について説明します。

ENTESB-12489 CVE-2019-9827 - Fuse Console standalone on Amazon Web Services
セキュリティーの懸念があるため、スタンドアロンの Fuse アプリケーションを Amazon Web Services (AWS) にデプロイしないでください。この制限は、サポートされるすべてのスタンドアロン環境 (Spring Boot 1.x および 2.x、Karaf、および Red Hat JBoss Enterprise Application Platform) に適用されます。AWS に Fuse Console スタンドアロンをデプロイする場合は、Fuse 7.7 以降にアップグレードし、hawtio.disableProxy システムプロパティーを true に設定して Fuse Console のプロキシーサーブレットを無効にすることが強く推奨されます。
CVE-2017-12629 Solr/Lucene -security bypass to access sensitive data - CVE-2017-12629

Apache Solr は、Apache Lucene 検索エンジンを使用する一般的なオープンソースの検索プラットフォームです。アプリケーションが Apache Solar と Apache Lucene の組み合わせ (Camel Solr コンポーネントを使用している場合など) を使用する場合、このセキュリティー脆弱性の影響を受ける可能性があります。この脆弱性の詳細と軽減策について、リンク先のセキュリティーアドバイザリーを確認してください。

注記

Fuse ランタイムは Apache Solr や Apache Lucene を直接使用 しません。統合アプリケーションで Apache Solr と Apache Lucene を一緒に使用する場合のみセキュリティー上のリスクが発生します (Camel Solr コンポーネントを使用する場合など)。

複数の CVE jackson-databind セキュリティー脆弱性に関連する複数の CVE

FasterXML jackson-databind ライブラリーを使用し、JSON コンテンツをデシリアライズして Java オブジェクトをインスタンス化するアプリケーションは、潜在的に リモートコード実行 攻撃に脆弱です。しかし、脆弱性は自動的に発生せず、適切な軽減策を講じれば回避することができます。

最低でも以下の前提条件をすべて満たさなければ攻撃を実行することはできません。

  1. jackson-databind の JSON コンテンツのデシリアライズに対し、ポリモーフィックな型の処理を有効にする必要があります。Jackson JSON でポリモーフィックな型の処理を有効にする方法は 2 つあります。

    1. @JsonTypeInfo および @JsonSubTypes アノテーションの組み合わせを使用します。
    2. ObjectMapper.enableDefaultTyping() メソッドを呼び出します。この方法はポリモーフィックな型をグローバルで有効にするため、危険です。
  2. 現在のバージョンの jackson-databind によってブラックリストに指定されていない ガジェットクラス が 1 つ以上 Java クラスパスにあります。ガジェットクラスは、機密性の高い (潜在的に悪用可能な) 操作を、constructor または setter メソッド (デシリアライズ中に呼び出しできるメソッド) の実行による副次的な影響として定義します。Jackson JSON ライブラリーによって維持されるガジェットブラックリストは、リモートコード実行の脆弱性から守るための最後の手段になります。

jackson-databind の脆弱性に関して多くの CVE が存在するのは、多数のガジェットクラスが存在するためです。ガジェットクラスの種類別に異なる CVE が存在します。

アプリケーションで jackson-databind を使用する必要がある場合、Jackson JSON でポリモーフィックな型の処理を行わないようにし、ObjectMapper.enableDefaultTyping() メソッドを絶対に呼び出さないことが、リスクを軽減する最も重要な対策になります。

7.2. Fuse Online

Fuse Online ディストリビューションの既知の問題は次のとおりです。

667 'null' when using "ItemAt" transformation from List<> → Number
ItemAt 変換を使用して List から Double へマップすると、データマッパーによって例外がスローされます。
1558 "Save as draft" and "Publish" buttons
Save as draft ボタンと Publish ボタンのいずれかをクリックし、手順が開始されても、両方のボタンがアクティブなままになります。
698 DB Connector: SQL parser doesn’t recognize parameters for LIKE
LIKE キーワードが含まれる SQL ステートメント (例: DELETE FROM TODO WHERE task LIKE ‘:#param’) では、LIKE キーワードを :#param などのデータマッパーパラメーターとともに使用できません。

7.3. Fuse on OpenShift

このセクションでは、OpenShift 上の Fuse アプリケーションのデプロイメントに影響する問題を取り上げます。特定のコンテナーに影響する問題の詳細は、Spring Boot、Fuse on Apache Karaf、および Fuse on JBoss EAP のセクションも参照にしてください。Fuse on OpenShift ディストリビューションの既知の問題を以下に示します。

ENTESB-9420 karaf-camel-rest-sql: Build creation stuck on "Receiving source from STDIN as archive"
初期のマイクロバージョンの OpenShift Container Platform (OCP) 3.10 にFuse アプリケーションをビルドまたはデプロイしようとすると、エラーが発生し、ビルドがハングする可能性があります。この問題が発生した場合、この問題が修正されている OCP 3.10.34 (またはそれ以降) にアップグレードすることが推奨されます。
ENTESB-9514 CDK (minishift) + quickstart with binary build doesn’t work
Red Hat Container Development Kit (CDK) 3.5 は、Fuse 7.2 on OpenShift で一部互換性のないバージョンの OpenShift を使用します (特に、Fuse on OpenShift のクイックスタートをビルドおよびデプロイできません)。この代わりに CDK 3.8 を使用することが推奨されます。

7.4. Fuse on Spring Boot

Fuse on Spring Boot の既知の問題は次のとおりです。

ENTESB-9208 XA transaction doesn’t work with MSSQL database
Fuse 7.2.0 GA リリースでは、Narayana をトランザクションとして使用すると、MSSQL データベースで XA トランザクションが動作しません。この問題は、今後のリリースの Fuse で修正される予定です。

7.5. Fuse on Apache Karaf

Fuse on Apache Karaf の既知の問題は次のとおりです。

ENTESB-9750 Swagger doesn’t work in karaf-camel-rest-sql
Fuse 7.2.0 GA リリースでは、エンドポイントの URL の前に /api-doc を追加して Swagger API 定義にアクセスしようとすると、karaf-camel-rest-sql クイックスタートによってエラーが発生します。この問題は、今後のリリースの Fuse で修正される予定です。
ENTESB-8140 Start level of hot deploy bundles is 80 by default

Fuse 7.0 GA リリースの Apache Karaf コンテナーでは、ホットデプロイバンドルの開始レベルがデフォルトで 80 になっています。これにより、同じ開始レベルを持つシステムバンドルや機能が多く存在するため、ホットデプロイバンドルに問題が発生することがあります。この問題を回避し、ホットデプロイバンドルが確実に開始するようにするには、etc/org.apache.felix.fileinstall-deploy.cfg ファイルを編集し、felix.fileinstall.start.level 設定を以下のように変更します。

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

framework-security オプションを使用して --no-auto-refresh OSGi 機能をインストールしないと、Apache Karaf コンテナーがシャットダウンします。以下に例を示します。

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

7.6. Apache Camel

Apache Camel の既知の問題は次のとおりです。

ENTESB-7469 Camel Docker component cannot use Unix socket connections on EAP
Fuse 7.0 では、camel-docker コンポーネントは UNIX ソケットではなく REST API のみを介して Docker に接続できます。
ENTESB-5231 PHP script language does not work
PHP の OSGi バンドルがないため、PHP スクリプト言語は Apache Karaf コンテナー上の Camel アプリケーションでサポートされません
ENTESB-5232 Python language does not work
Python の OSGi バンドルがないため、Python スクリプト言語は Apache Karaf コンテナー上の Camel アプリケーションでサポートされません
ENTESB-2443 Google Mail API - Sending of messages and drafts is not synchronous
メッセージまたは下書きを送信すると、応答には ID を持つ Message オブジェクトが含まれます。API への別の呼び出しを介してこのメッセージを即座に取得できない可能性があります。このような場合、待機して呼び出しを再試行する必要があります。
ENTESB-2332 Google Drive API JSON response for changes returns bad count of items for the first page
変更に対する Google Drive API JSON 応答によって返される最初のページのアイテム数は適切でありません。リスト操作の maxResults を設定すると、最初のページにすべての結果が返されないことがあります。この場合、複数のページを確認して完全リストを取得する必要があります (新しいリクエストに pageToken を設定して行います)。