Splunk Enterprise 9.0.0 < 9.0.9、9.1.0 < 9.1.4、9.2.0 < 9.2.1 (SVD-2024-0718)

critical Nessus プラグイン ID 201209

概要

リモートの Web サーバーホストで実行されているアプリケーションは、脆弱性の影響を受けます。

説明

リモートホストにインストールされている Splunk のバージョンは、テスト済みバージョンより前です。したがって、SVD-2024-0718 のアドバイザリに記載されている脆弱性の影響を受けます。

- jackson-databind 2.15.2 までのバージョンでは、攻撃者が循環依存関係を使用する細工されたオブジェクトを介して、サービス拒否を引き起こしたり、他の詳細不明な影響を及ぼしたりする可能性があります。注意: 循環データ構造を構築し、それをシリアル化する手順は外部の攻撃者が実行できないため、ベンダーの見解では、これは有効な脆弱性レポートではありません。(CVE-2023-35116)

- 2.7より前の Apache Commons IO では、//../foo または \\..\foo のような不適切な入力文字列で FileNameUtils.normalize メソッドを呼び出すと、結果が同じ値になり、親ディレクトリ内のファイルにアクセスが提供される可能性があります。ただし、呼び出し側のコードが結果を使用してパス値を構築する場合は、それ以上には制限されません (したがって、パストラバーサルが制限されます)。(CVE-2021-29425)

- snappy-java は、Google が開発した高速 C++ 圧縮/展開ツールである snappy の Java ポートです。SnappyInputStream は、チャンクサイズが大きすぎるデータを展開する際に、サービス拒否 (DoS) 攻撃に対して脆弱であることが判明しました。チャンクの長さの上限チェックがないため、回復不能な致命的なエラーが発生する可能性があります。最新リリースバージョン 1.1.10.3 を含むすべてのバージョンの snappy-java は、この問題に対して脆弱です。1.1.10.4 リリースに含まれるコミット「9f8c3cf74」で修正が導入されています。ユーザーはアップグレードすることをお勧めします。アップグレードできないユーザーは、信頼できるソースからの圧縮データのみを受け入れる必要があります。(CVE-2023-43642)

- snappy-java は、Java 用の高速圧縮/解凍プログラムです。乗算がチェックされないため、1.1.10.1 より前のバージョンでは、整数オーバーフローが発生し、致命的なエラーが発生する可能性があります。ファイル「BitShuffle.java」の関数「shuffle(int[] input)」は、整数の配列を受け取り、それにビットシャッフルを適用します。これは、長さを 4 で乗算し、ネイティブにコンパイルされたシャッフル関数に渡すことにより実行されます。長さがテストされないため、4 を乗算すると整数オーバーフローを引き起こし、実際のサイズよりも小さい値になったり、ゼロまたは負の値になったりする可能性があります。負の値の場合、「java.lang.NegativeArraySizeException」の例外が発生し、プログラムがクラッシュする可能性があります。値がゼロまたは小さすぎる場合、その後シャッフルされた配列を参照するコードは、より大きなサイズの配列を想定します。これにより、「java.lang.ArrayIndexOutOfBoundsException」などの例外が発生する可能性があります。
同じ問題が、double、float、long および short を受け取る「shuffle」関数を使用する場合にも発生し、それぞれが異なる乗数を使用しているため、同じ問題が発生する可能性があります。バージョン 1.1.10.1 には、この脆弱性に対するパッチが含まれています。(CVE-2023-34453)

- snappy-java は、Java 用の高速圧縮/解凍プログラムです。乗算がチェックされないため、1.1.10.1 より前のバージョンでは、整数オーバーフローが発生し、回帰不能な致命的なエラーが発生する可能性があります。ファイル「Snappy.java」内の関数「compress(char[] input)」は、文字配列を受け取り、圧縮します。これは、長さを 2 で乗算し、「rawCompress」関数に渡すことにより実行されます。長さがテストされないため、2 を乗算すると整数オーバーフローを引き起こし、負の値になる可能性があります。その後、rawCompress 関数は受信した長さをネイティブにコンパイルされた maxCompressedLength 関数に渡し、返された値を使用してバイト配列を割り当てます。maxCompressedLength 関数は長さを符号なし整数として扱うため、長さが負であることが考慮されず、Java エンジンによって符号付き整数にキャストされた有効な値として返します。その結果が負の場合、配列「buf」の割り当ての試行中に「java.lang.NegativeArraySizeException」の例外が発生します。
一方、その結果が負の場合、「buf」配列は正常に割り当てられますが、そのサイズが小さすぎて圧縮に使用できず、致命的なアクセス違反エラーが発生する可能性があります。同じ問題が、double、float、int、long および short を受け取る「compress」関数を使用する場合にも発生し、それぞれが異なる乗数を使用しているため、同じ問題が発生する可能性があります。もともと、サイズ 0x80000000 (または他の負の値) のバイト配列を作成することは不可能であるため、バイト配列を使用する場合、この問題は発生しない可能性が高くなります。バージョン 1.1.10.1 には、この問題に対するパッチが含まれています。(CVE-2023-34454)

- snappy-java は、Java 用の高速圧縮/解凍プログラムです。チェックされていないチャンク長が使用されるため、1.1.10.1 より前のバージョンでは、回復不能な致命的なエラーが発生する可能性があります。fileSnappyInputStream.java の関数 hasNextChunk のコードは、指定されたストリームに読み込むチャンクが他にもあるかどうかをチェックします。これは、4 バイトの読み取りを試みることで行われます。4 バイトを読み取ることができなかった場合、関数は false を返します。
それ以外の場合、4 バイトが利用可能であれば、コードはそれらを次のチャンクの長さとして処理します。「compressed」変数が null の場合、入力データで指定されたサイズのバイト配列が割り当てられます。
コードは「chunkSize」変数の正当性をテストしないため、負の数 (-1 である 0xFFFFFFFF など) を渡す可能性があります。これにより、コードは「java.lang.NegativeArraySizeException」の例外を生じさせます。さらに悪いケースとして、非常に大きな正の値 (0x7FFFFFFF など) を渡すと、致命的な「java.lang.OutOfMemoryError」エラーが発生する可能性があります。バージョン 1.1.10.1 には、この問題に対するパッチが含まれています。(CVE-2023-34455)

- 信頼できないデータまたは破損したデータを逆シリアル化する場合、リーダーが許可された制約を超えてメモリを消費し、システムのメモリ不足を引き起こす可能性があります。この問題は、1.11.2 までの Apache Avro Java SDK を使用する Java アプリケーションに影響します。ユーザーは、この問題に対処する apache-avro バージョン 1.11.3 に更新する必要があります。(CVE-2023-39410)

- Apache Cal Cite Avatica JDBC ドライバーは、「httpclient_impl」接続プロパティを介して提供されたクラス名に基づいて、HTTP クライアントインスタンスを作成します。ただし、ドライバーはインスタンスを作成する前に、期待されるインターフェースをクラスが実装しているかどうかを検証しません。そのため、任意のクラスを介してロードされたコード実行や、まれなケースではリモートでコードが実行される可能性があります。この脆弱性を悪用するには、1) 攻撃者が JDBC 接続パラメーターをコントロールする特権を持っていること、また、2) クラスパスに脆弱なクラス (URL パラメーターとコード実行機能を持つコンストラクター) が存在する必要があります。Apache Calcite Avatica 1.22.0 以降では、コンストラクターを呼び出す前に、クラスが期待されるインターフェースを実装していることが検証されています。(CVE-2022-36364)

- Guava のすべてのバージョンにおいて、一時ディレクトリ作成の脆弱性が存在し、マシンへのアクセス権を持つ攻撃者が、Guava API com.google.common.io.Files.createTempDir() によって作成された一時ディレクトリのデータにアクセスできる可能性があります。デフォルトでは、unix のようなシステムで作成されたディレクトリは誰でも読み取ることができます (システムへのアクセス権を持つ攻撃者によって読み取り可能)。問題のメソッドはバージョン 30.0 以降で @Deprecated とマークされており、使用すべきではありません。Android 開発者には、context.getCacheDir() などの Android が提供する一時ディレクトリ API を選択することをお勧めします。その他の Java 開発者の場合は、明示的にアクセス許可を 700 に設定する Java 7 API java.nio.file.Files.createTempDirectory() に移行するか、Java ランタイムの java.io.tmpdir システムプロパティのアクセス許可を適切に設定するよう移行します。(CVE-2020-8908)

- Google Guava バージョン 1.0 から 31.1 までの「FileBackedOutputStream」において、Java のデフォルトの一時ディレクトリを使用してファイルを作成すると、Unix システムと Android Ice Cream Sandwich 上で、デフォルトの Java 一時ディレクトリにアクセス権を持つ他のユーザーやアプリが、このクラスによって作成されたファイルにアクセスできる可能性があります。セキュリティの脆弱性はバージョン 32.0.0 で修正されていますが、バージョン 32.0.0 は Windows で一部の機能を破損させるため、バージョン 32.0.1 を使用することを推奨します。(CVE-2023-2976)

- Google Guava 11.0 の 24.x から 24.1.1 以前の無制限のメモリ割り当てにより、AtomicDoubleArray クラス (Java シリアル化でシリアル化された場合) と CompoundOrdering クラス (GWT シリアル化でシリアル化された場合) は、クライアントが送信したデータやデータのサイズが妥当かどうかを適切にチェックせずに積極的な割り当てを実行するため、リモート攻撃者がこのライブラリに依存するサーバーに対してサービス拒否攻撃を実行し、攻撃者が提供したデータを逆シリアル化できます。(CVE-2018-10237)

- aiohttp は、asyncio および Python 用の非同期 HTTP クライアント/サーバーフレームワークです。aiohttp v3.8.4 以前は、llhttp v6.0.6 にバンドルされています。脆弱なコードは、実行可能な場合には、aiohttp の HTTP リクエストパーサーに使用されます。これは、ホイールからインストールする際のデフォルトケースです。この脆弱性は、HTTP サーバーとして aiohttp を使用しているユーザー (「aiohttp.Application」など) にのみ影響します。aiohttp を HTTP クライアントライブラリとして使用している場合 (「aiohttp.ClientSession」など) は、この脆弱性の影響を受けません。細工された HTTP リクエストを送信すると、サーバーが HTTP ヘッダー値の 1 つを誤って解釈し、HTTP リクエストのスマグリングを引き起こす可能性があります。
この問題は、バージョン 3.8.5で対処されています。ユーザーはアップグレードすることをお勧めします。アップグレードできないユーザーは、環境変数として、「AIOHTTP_NO_EXTENSIONS=1」を使用して aiohttp を再インストールし、llhttp HTTP リクエストパーサーの実装を無効にすることができます。純粋な Python の実装は脆弱ではありません。(CVE-2023-37276)

- aiohttp は、asyncio および Python 用の非同期 HTTP クライアント/サーバーフレームワークです。AIOHTTP の HTTP パーサーには、ヘッダー解析に関する多くの問題があり、リクエストのスマグリングを引き起こす可能性があります。このパーサーは、AIOHTTP_NO_EXTENSIONS が有効な場合 (または事前に構築されたホイールを使用していない場合) にのみ使用されます。このバグは、リリースバージョン 3.8.6 に含まれているコミット「d5c12ba89」で対処されています。ユーザーはアップグレードすることをお勧めします。これらの問題についての既知の回避策はありません。(CVE-2023-47627)

- urllib3 は、Python 用のユーザーフレンドリーな HTTP クライアントライブラリです。urllib3 では「Cookie」HTTP ヘッダーを特別に扱ったり、HTTP でクッキーを管理するためのヘルパーを提供したりしないため、これはユーザーの責任となります。
ただし、ユーザーがリダイレクトを明示的に無効にしない場合、ユーザーが「Cookie」ヘッダーを指定し、HTTP リダイレクトを介して知らないうちに別のオリジンに情報を漏洩する可能性があります。この問題は、urllib3 バージョン 1.26.17 または 2.0.5 でパッチ済みです。(CVE-2023-43804)

- urllib3 は、Python 用の使いやすい HTTP クライアントライブラリです。urllib3 は以前、リクエスト後にステータス 301、302、または 303 を使用する HTTP リダイレクト応答がそのメソッドを、リクエスト本文を受け入れることができるもの (「POST」など) から「GET」に変更した場合、HTTP RFC で要求されたとおりに HTTP リクエスト本文を削除しませんでした。
この動作はリダイレクトのセクションでは規定されていませんが、異なるセクションからの情報を統合することで推測でき、curl や Web ブラウザなどの他の主要な HTTP クライアントの実装でこの動作が観察されています。この脆弱性が機密性に影響を与えるには以前信頼されていたサービスが侵害される必要があるため、この脆弱性が悪用される可能性は低いと考えられます。さらに、多くのユーザーは機密データを HTTP リクエスト本文に配置しておらず、その場合にはこの脆弱性は悪用できません。この脆弱性の影響を受けるのは、次の両方の条件が真である場合に限ります。1. urllib3 を使用し HTTP リクエスト本文 (フォームデータや JSON など) で機密情報を送信する。2. リダイレクト元のサービスが侵害され、301、302、または 303 を使用して悪意のあるピアへのリダイレクトを開始するか、リダイレクト先のサービスが侵害される。
この問題はバージョン 1.26.18 と 2.0.7 で対処されており、すべてのユーザーはアップグレードすることを推奨されています。更新できないユーザーは、「redirects=False」が指定されたリダイレクトの応答を期待していないサービスのリダイレクトを無効にし、「redirects=False」の自動リダイレクトを無効にし、HTTP リクエスト本文を削除することで 301、302、303 のリダイレクトを手動で処理する必要があります。(CVE-2023-45803)

- Certifi は、TLS ホストの ID を検証する際に、SSL 証明書の信頼性を検証するための、ルート証明書のキュレーションされたコレクションです。バージョン 2023.07.22 より前の Certifi は、e-Tugra ルート証明書を認識します。e-Tugra のルート証明書が、システムのセキュリティ問題の報告を受けて調査の対象になりました。Certifi 2023.07.22 は、e-Tugra のルート証明書をルートストアから削除します。(CVE-2023-37920)

- v23.3 より前の pip を使用して、Mercurial VCS URL (すなわち、pip install hg+...) からパッケージをインストールする場合、指定された Mercurial リビジョンが、任意の設定オプションを hg clone 呼び出し (すなわち、--config) に注入するために使用される可能性があります。Mercurial の設定を制御することで、どのリポジトリがどのようにインストールされるかが変わる可能性があります。Mercurial 以外からインストールしているユーザーは、この脆弱性による影響を受けません。(CVE-2023-5752)

- 65.5.1以前の Python Packaging Authority (PyPA) setuptools では、リモート攻撃者が、細工されたパッケージまたはカスタム PackageIndex ページの HTML を介して、サービス拒否を引き起こす可能性があります。package_index.py に正規表現のサービス拒否 (ReDoS) があります。(CVE-2022-40897)

- SmithyLexer によって 2.15.0 までの pygments の pygments/lexers/smithy.py で ReDoS の問題が発見されました。
(CVE-2022-40896)

- Python Packaging Authority (PyPA) Wheel 0.37.1以前で検出された問題により、リモート攻撃者が、攻撃者制御の入力を使用して Wheel cli に対してサービス拒否を引き起こす可能性があります。(CVE-2022-40898)

- Requests は HTTP ライブラリです。Requests 2.3.0以降では、Requests が HTTPS エンドポイントにリダイレクトされた際に、Proxy-Authorization ヘッダーが宛先サーバーに漏洩しています。これは、リクエストを「Proxy-Authorization」ヘッダーに再添付するために「rebuild_proxies」を使用する方法の製品です。トンネル経由で送信される HTTP 接続の場合、プロキシはリクエスト自体のヘッダーを識別し、宛先サーバーに転送する前にそれを削除します。ただし、プロキシはトンネル化されたリクエストを確認できないため、HTTPS 経由で送信するときは、CONNECT リクエストで「Proxy-Authorization」ヘッダーを送信する必要があります。これにより、リクエストが意図せずにプロキシ認証情報を宛先サーバーに転送し、悪意のある攻撃者が機密情報を漏洩させる可能性があります。この問題には、バージョン 2.31.0 でパッチが適用されています。
(CVE-2023-32681)

- Python Charmer Future 0.18.2 以前で発見された問題により、リモートの攻撃者が、悪意のある Web サーバーから細工された Set-Cookie ヘッダーを介して、サービス拒否を引き起こす可能性があります。(CVE-2022-40899)

- python-idna: idna.encode() への特別に細工された入力によるリソース消費で潜在的な DoS (CVE-2024-3651)

Nessus はこの問題をテストしておらず、代わりにアプリケーションが自己報告するバージョン番号にのみ依存していることに注意してください。

ソリューション

Splunk Enterprise をバージョン 9.2.1、9.1.4、9.0.9、またはそれ以降にアップグレードしてください。

参考資料

https://advisory.splunk.com/advisories/SVD-2024-0718.html

プラグインの詳細

深刻度: Critical

ID: 201209

ファイル名: splunk_921_svd-2024-0718.nasl

バージョン: 1.3

タイプ: combined

エージェント: windows, macosx, unix

ファミリー: CGI abuses

公開日: 2024/7/1

更新日: 2024/7/2

サポートされているセンサー: Nessus Agent, Nessus

リスク情報

VPR

リスクファクター: Medium

スコア: 6.0

CVSS v2

リスクファクター: Medium

基本値: 5.8

現状値: 5

ベクトル: CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:N

CVSS スコアのソース: CVE-2021-29425

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 9.4

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:H/RL:O/RC:C

CVSS スコアのソース: CVE-2023-37920

脆弱性情報

CPE: cpe:/a:splunk:splunk

必要な KB アイテム: installed_sw/Splunk

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

パッチ公開日: 2024/7/1

脆弱性公開日: 2018/4/25

参照情報

CVE: CVE-2018-10237, CVE-2020-8908, CVE-2021-29425, CVE-2022-36364, CVE-2022-40896, CVE-2022-40897, CVE-2022-40898, CVE-2022-40899, CVE-2023-2976, CVE-2023-32681, CVE-2023-34453, CVE-2023-34454, CVE-2023-34455, CVE-2023-35116, CVE-2023-37276, CVE-2023-37920, CVE-2023-39410, CVE-2023-43642, CVE-2023-43804, CVE-2023-45803, CVE-2023-47627, CVE-2023-5752, CVE-2024-3651