メインコンテンツへスキップ

AIQUM 9.18に脆弱なUndertowバージョンが検出され、CPU使用率の上昇とGUIの応答停止を引き起こしています

Views:
Visibility:
Public
Votes:
0
Category:
not set
Specialty:
not set
Last Updated:

環境

  • Active IQ Unified Manager(AIQUM)9.18
  • RHEL/OVA/Windows
  • CVE-2023-1108

問題

AIQUM 9.18P2にアップグレード後、以下の症状が発生する可能性があります:

  • CPU使用率が高い AIQUM Java/JBoss プロセスについて
  • 単一の Undertow ワーカースレッド (例:default I/O-2) が、1つの CPU コアの 100% を継続的に消費します
  • AIQUM Web GUI の動作が遅い、または部分的に応答しない
  • この状態は自己解決しないため、復旧にはサービスの再起動が必要になる場合があります
  • この問題は、AIQUM 9.18P2D2 にアップグレードした後に発生する可能性があります
  • この問題は、HTTPS/TLS 接続が異常終了した場合 (例:ハンドシェイク中の TCP リセット) に発生する可能性があり、監視、ロードバランサーのヘルスチェック、またはセキュリティスキャン活動中に起こることがあります

Linuxでは、CPU使用率が高いことは以下の方法で確認できます:

top -H -p <jboss_pid>

出力例:

default I/O-2 R 99.7 ...

スレッドダンプには、以下のようなスタックが表示される場合があります。

sun.security.ssl.SSLEngineImpl.wrap at io.undertow.protocols.ssl.SslConduit.wrapAndFlip(SslConduit.java:1009) at io.undertow.protocols.ssl.SslConduit.doWrap(SslConduit.java:940) at io.undertow.protocols.ssl.SslConduit.doHandshake(SslConduit.java:673) at io.undertow.protocols.ssl.SslConduit$5$1.run(SslConduit.java:1153)

Undertow の読み取り、書き込み、またはリクエスト解析のタイムアウトを設定しても、この問題は解決されません。これは、スレッドがソケット I/O を待機するのではなく、ユーザー空間の SSL コード内でアクティブにスピンしているためです。

原因

Active IQ Unified Manager 9.18では、Undertowの古いバージョンが使用されており、CVE-2023-1108の脆弱性があります。

  • 影響を受ける jar ファイル:undertow-core-2.3.0.Final.jar (WildFly 27.0.1.Final にバンドル)
  • メカニズム:SslConduit.wrapAndFlip TLS 受信側が予期せず閉じられた場合、無限ループに陥り、CPU 使用率が継続的に上昇する可能性があります(サービス拒否)。
  • 修正済み:undertow-core-2.3.5.Final.jar (UNDERTOW-2239)

この「問題」は、AIQUM 9.13 および 9.14 で文書化された以前の undertow の「問題」に関連していますが、AIQUM 9.18 に同梱されている 2.3.x undertow ラインに影響します。

この問題では、直接識別可能なログメッセージは生成されませんが、スレッドダンプとCPUプロファイリングでは、影響を受けるスレッドが io.undertow.protocols.ssl.SslConduit.wrapAndFlip でスピンしていることが通常示されます。

解決策

この問題を回避するには、以下の手順に従ってください。

警告

  • このプロセスを開始する前に、仮想マシンのコールドスナップショットを作成してください。
  • 以下の手順は、NetApp テクニカルサポートの監督のもとで実施してください。

重要 — 実験手順

  • この回避策は実験的であり、AIQUM 9.18 に対して NetApp により正式に認定されていません
  • 少なくとも1つの顧客環境で検証済みですが、製品全体の回帰テストは 完了していません
  • NetApp は、特定の CVE 修正を超えたサードパーティ製 jar の置換との互換性を保証しません。
  • undertow jar を置き換える AIQUM のアップグレードまたはパッチを適用した後は、再度適用してください。
  • 予期しない動作が発生した場合は、バックアップしておいた元の jar ファイルに戻し、サービスを再起動してください。

Windows:

  1. Maven リポジトリから undertow-core-2.3.5.Final.jar をダウンロードします:
    https://repo1.maven.org/maven2/io/undertow/undertow-core/2.3.5.Final/undertow-core-2.3.5.Final.jar
    ファイルのチェックサムが一致することを確認します:
    https://repo1.maven.org/maven2/io/undertow/undertow-core/2.3.5.Final/undertow-core-2.3.5.Final.jar.sha1
  2. UMサービスを停止します。参照:Microsoft Windows上で実行されているActiveIQ Unified Managerサービスを適切に再起動する方法
  3. オリジナルのjarファイルをバックアップします。
    C:\Program Files\NetApp\essentials\jboss\modules\system\layers\base\io\undertow\core\main\undertow-core-2.3.0.Final.jar
  4. 手順1でダウンロードしたundertow-core-2.3.5.Final.jarを以下にコピーします:
    C:\Program Files\NetApp\essentials\jboss\modules\system\layers\base\io\undertow\core\main\
    新しくコピーしたjarファイルのパーミッションが元のjarファイルと同じであることを確認してください。
  5. 以下のファイルでjarのバージョンを2.3.0から2.3.5に編集して変更します:
    C:\Program Files\NetApp\essentials\jboss\modules\system\layers\base\io\undertow\core\main\module.xml
  6. オリジナルのjarファイルを削除します。
    C:\Program Files\NetApp\essentials\jboss\modules\system\layers\base\io\undertow\core\main\undertow-core-2.3.0.Final.jar
  7. UMサービスを開始します。

Linux/vApp:

  1. Maven リポジトリから undertow-core-2.3.5.Final.jar をダウンロードします:
    https://repo1.maven.org/maven2/io/undertow/undertow-core/2.3.5.Final/undertow-core-2.3.5.Final.jar
    ファイルのチェックサムが一致することを確認します:
    https://repo1.maven.org/maven2/io/undertow/undertow-core/2.3.5.Final/undertow-core-2.3.5.Final.jar.sha1
  2. undertow-core-2.3.5.Final.jar を AIQUM ホスト上の /jail/upload にコピーします。
    OVA バージョンでは、SCP または WinSCP のようなアプリケーションを使用する必要があります。
    scp undertow-core-2.3.5.Final.jar <AIQUM_username>@<AIQUM_IP>:/jail/upload/
  3. AIQUMのコマンドラインにアクセスします。参照:How to access ActiveIQ Unified Manager Virtual Machine OVA DIAG shell
  4. UMサービスを停止します。参照:How to properly stop/start Unified Manager services in RHEL/CentOS/OVA
  5. オリジナルのjarファイルをバックアップします。
    /opt/netapp/essentials/jboss/modules/system/layers/base/io/undertow/core/main/undertow-core-2.3.0.Final.jar
  6. 手順1でダウンロードしたundertow-core-2.3.5.Final.jar/opt/netapp/essentials/jboss/modules/system/layers/base/io/undertow/core/main/にコピーし、新しくコピーしたjarファイルの権限がオリジナルのjarファイルと同じであることを確認します。
  7. /opt/netapp/essentials/jboss/modules/system/layers/base/io/undertow/core/main/module.xml内のjarバージョンを2.3.0から2.3.5に編集して変更します。
    変更前:
    <resource-root path="undertow-core-2.3.0.Final.jar"/>
    変更後:
    <resource-root path="undertow-core-2.3.5.Final.jar"/>
  8. オリジナルのjarファイルを削除します。
    /opt/netapp/essentials/jboss/modules/system/layers/base/io/undertow/core/main/undertow-core-2.3.0.Final.jar
  9. UMサービスを開始します。
  10. undertow-core-2.3.5.Final.jarが使用されていることを確認するには、以下を実行します。
    grep Undertow /var/log/ocie/server.log
    以下のような出力が期待されます:
    WFLYUT0003: Undertow 2.3.5.Final starting

パートナーノート

partnerNotes_text

追加情報

「問題」はUndertowの脆弱性が原因でしたが、更新されたバージョンで修正されています。

この「問題」は、AIQUM 9.13 および 9.14 に記載されている undertow CVE に関連しています。参照:

Undertow の読み取り / 書き込みタイムアウトを設定するだけでは、この問題は解決されません。影響を受けるスレッドは、ソケット I/O を待機するのではなく、ユーザー空間の SSL コード内でスピンしているためです。

注:脆弱性スキャナーを使用していない環境でも、同様のアクセスパターンによってこの問題が発生する可能性があります。したがって、脆弱性スキャナーが存在しないからといって、その環境がこの問題の影響を受けていないとは限りません。

内部情報

AIQUM 9.18 の undertow CVE-2023-1108 に対する実験的な回避策。

顧客事例2010765728 (DZ BANK AG) では、undertow-core-2.3.5.Finalからundertow-core-2.3.0.Final.jarへのクラス置換が検証されました。エンジニアリングの承認待ちのサポート回避策として、jar ファイルの完全置換が文書化されています。

関連する欠陥:CAIQUM-9250 (P2、Jaspal Singh)。

関連:CAIQUM-5933 (AIQUM 9.13/9.14 にも同じ CVE が存在し、9.16 で修正済み)。

Sign in to view the entire content of this KB article.

New to NetApp?

Learn more about our award-winning Support

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.
  • この記事は役に立ちましたか?