Ubuntu 16.04 ESM / 18.04 ESM / 20.04 ESM / 22.04 LTS : Netty の脆弱性 (USN-6049-1)

medium Nessus プラグイン ID 174932

概要

リモートUbuntuホストに1つ以上のセキュリティ更新がありません。

説明

リモートの Ubuntu 16.04 ESM / 18.04 ESM / 20.04 ESM / 22.04 LTS ホストには、USN-6049-1 のアドバイザリに記載された複数の脆弱性の影響を受けるパッケージがインストールされています。

- 4.1.46より前の Netty 4.1.xの ZlibDecoders は、ZlibEncoded バイトストリームのデコード中に、際限のないメモリ割り当てを許可します。攻撃者は大きな ZlibEncoded バイトストリームを Netty サーバーに送信し、サーバーにその空きメモリのすべてを単一のデコーダーに割り当てさせる可能性があります。(CVE-2020-11612)

- Netty はメンテナンス可能な高性能プロトコルサーバーおよびクライアントの迅速な開発のためのオープンソースの非同期イベント駆動型ネットワークアプリケーションフレームワークです。バージョン 4.1.59.Final より前の Netty には、安全でない一時ファイルに関連する Unix のようなシステムの脆弱性があります。Netty のマルチパートデコーダーが使用されている場合、ディスクへのアップロードの一時保存が有効になっていると、ローカルシステムの一時ディレクトリを介してローカル情報漏洩が発生する可能性があります。Unix のようなシステムでは、一時ディレクトリは全ユーザーで共有されます。
したがって、ファイル/ディレクトリの権限を明示的に設定しない API を使用してこのディレクトリに書き込むと、情報漏洩が発生する可能性があります。注意: これは最新の MacOS オペレーティングシステムに影響を与えません。unix のようなシステムの File.createTempFile メソッドは、ランダムファイルを作成しますが、デフォルトでは、このファイルはパーミッション -rw-r--r-- で作成されます。したがって、機密情報がこのファイルに書き込まれると、他のローカルユーザーがこの情報を読み取る可能性があります。これは、netty の AbstractDiskHttpData が脆弱な場合です。
これはバージョン 4.1.59.Final で修正されました。回避策として、JVM の起動時に独自の java.io.tmpdir を指定するか、DefaultHttpDataFactory.setBaseDir(...) を使用して、現在のユーザーのみ読み取り可能なものにディレクトリを設定します。(CVE-2021-21290)

- Netty はメンテナンス可能な高性能プロトコルサーバーおよびクライアントの迅速な開発のためのオープンソースの非同期イベント駆動型ネットワークアプリケーションフレームワークです。バージョン 4.1.60.Final より前の Netty (io.netty: netty-codec-http2) では、リクエストスマグリングを可能にする脆弱性があります。元の HTTP/2 リクエストに Content-Length ヘッダーが存在する場合、フィールドが上に伝播され、「Http2MultiplexHandler」によって検証されません。これは、リクエストが HTTP/1.1 としてプロキシされていない限り問題ありません。リクエストが HTTP/2 ストリームで受信される場合、リクエストは「Http2StreamFrameToHttpObjectCodec」を介して HTTP/1.1 ドメインオブジェクト (「HttpRequest」、「HttpContent」など) に変換され、子チャネルのパイプラインに送信され、HTTP/1.1 としてのリモートピアを通じてプロキシされます。このため、リクエストのスマグリングが発生する可能性があります。プロキシの場合、ユーザーは content-length が何らかの方法で検証されていると考えるかもしれませんが、そうではありません。リクエストが HTTP/1.1 接続であるバックエンドチャネルに転送される場合、Content-Length には意味があり、チェックする必要があります。HTTP/2 から HTTP/1.1 にダウングレードする際に、攻撃者が本文内にリクエストをスマグリングする可能性があります。攻撃の例については、リンクされている GitHub アドバイザリを参照してください。ユーザーが影響を受けるのは、次のすべてに該当する場合のみです。「HTTP2MultiplexCodec」または「Http2FrameCodec」が使用され、「Http2StreamFrameToHttpObjectCodec」が HTTP/1.1 オブジェクトに変換され、これらの HTTP/1.1 オブジェクトが別のリモートピアに転送される。これは 4.1.60.Final でパッチされています。回避策として、ユーザーは「Http2StreamFrameToHttpObjectCodec」の背後の「ChannelPipeline」に配置されるカスタム「ChannelInboundHandler」を実装して、自分で検証を行うことができます。(CVE-2021-21295)

- Netty はメンテナンス可能な高性能プロトコルサーバーおよびクライアントの迅速な開発のためのオープンソースの非同期イベント駆動型ネットワークアプリケーションフレームワークです。バージョン 4.1.61.Final より前の Netty (io.netty: netty-codec-http2) では、リクエストスマグリングを可能にする脆弱性があります。リクエストが endStream を true に設定した単一の Http2HeaderFrame のみを使用する場合、content-length ヘッダーが正しく検証されません。これにより、リクエストがリモートピアにプロキシされ、HTTP/1.1 に変換されると、リクエストのスマグリングが発生する可能性があります。これは、GHSA-wm47-8v5p-wjpj/CVE-2021-21295 のフォローアップであり、この 1 つのケースを修正できていません。でした
これは、4.1.61.Final の一部として修正されました。(CVE-2021-21409)

- Bzip2 展開デコーダー関数は、展開された出力データにサイズ制限を設定できません (展開中に使用される割り当てサイズに影響します)。Bzip2Decoder のすべてのユーザーが影響を受けます。悪意のある入力が OOME を引き起こし、DoS 攻撃を引き起こす可能性があります (CVE-2021-37136)

- Snappy フレームデコーダー関数は、チャンク長を制限しません。これにより、過剰なメモリ使用が発生する可能性があります。これに加えて、チャンク全体が受信されるまで予約済みのスキップ可能なチャンクをバッファリングすることもあり、過剰なメモリ使用につながる可能性があります。この脆弱性は、(ネットワークストリームまたはファイルを介して) 非常に大きなサイズに展開する悪意のある入力を提供したり、スキップ可能な巨大なチャンクを送信したりすることで発生する可能性があります。(CVE-2021-37137)

- Netty はメンテナンス可能な高性能プロトコルサーバーおよびクライアントの迅速な開発のための非同期イベント駆動型ネットワークアプリケーションフレームワークです。バージョン 4.1.71.Final より前の Netty は、ヘッダー名の先頭/末尾にある場合、制御文字をスキップします。これらは仕様で許可されておらず、HTTP リクエストスマグリングを引き起こす可能性があるため、代わりにすぐに失敗します。検証を行わないと、プロキシとして使用されるときに、netty がヘッダー名を別のリモートシステムに転送する前にサニタイズする可能性があります。このリモートシステムは無効な使用率を認識できなくなり、検証自体は行われなくなります。ユーザーはバージョン 4.1.71.Final にアップグレードする必要があります。(CVE-2021-43797)

- Netty プロジェクトは、イベント駆動型非同期ネットワークアプリケーションフレームワークです。4.1.86.Final より前のバージョンでは、無限再帰のために、無効な形式の細工されたメッセージを解析するときに StackOverflowError が発生する可能性があります。この問題には、バージョン 4.1.86.Final でパッチが適用されています。カスタム HaProxyMessageDecoder を使用する以外、回避策はありません。(CVE-2022-41881)

- Netty プロジェクトは、イベント駆動型非同期ネットワークアプリケーションフレームワークです。バージョン 4.1.83.Final 以降、4.1.86.Final より前では、値の _iterator_ を指定して「DefaultHttpHeadesr.set」を呼び出すと、ヘッダー値の検証が実行されず、イテレーターの悪意のあるヘッダー値が HTTP 応答分割を実行する可能性があります。この問題には、バージョン 4.1.86.Final でパッチが適用されました。インテグレーターは、「DefaultHttpHeaders.set(CharSequence, Iterator<?>)」コールを「remove()」コールに変更し、値のイテレーターのループで「add()」をコールすることで、この問題に対処できます。(CVE-2022-41915)

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

ソリューション

影響を受ける libnetty-java パッケージを更新してください。

参考資料

https://ubuntu.com/security/notices/USN-6049-1

プラグインの詳細

深刻度: Medium

ID: 174932

ファイル名: ubuntu_USN-6049-1.nasl

バージョン: 1.3

タイプ: local

エージェント: unix

公開日: 2023/4/28

更新日: 2023/10/16

サポートされているセンサー: Frictionless Assessment AWS, Frictionless Assessment Azure, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

リスク情報

VPR

リスクファクター: Medium

スコア: 5.1

CVSS v2

リスクファクター: Medium

基本値: 4.3

現状値: 3.6

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

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

CVSS v3

リスクファクター: Medium

基本値: 6.5

現状値: 6

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

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

CVSS スコアのソース: CVE-2022-41915

脆弱性情報

CPE: cpe:/o:canonical:ubuntu_linux:16.04:-:esm, cpe:/o:canonical:ubuntu_linux:18.04:-:esm, cpe:/o:canonical:ubuntu_linux:20.04:-:esm, cpe:/o:canonical:ubuntu_linux:22.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:libnetty-java

必要な KB アイテム: Host/cpu, Host/Debian/dpkg-l, Host/Ubuntu, Host/Ubuntu/release

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

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

パッチ公開日: 2023/4/28

脆弱性公開日: 2020/4/7

参照情報

CVE: CVE-2020-11612, CVE-2021-21290, CVE-2021-21295, CVE-2021-21409, CVE-2021-37136, CVE-2021-37137, CVE-2021-43797, CVE-2022-41881, CVE-2022-41915

USN: 6049-1