概要
リモートの SUSE ホストに 1 つ以上のセキュリティ更新がありません。
説明
リモートの SUSE Linux SLED15 / SLED_SAP15 / SLES15 / SLES_SAP15 / openSUSE 15 ホストには、SUSE-SU-2023:2312-1 のアドバイザリに記載された複数の脆弱性の影響を受けるパッケージがインストールされています。
- Go 1.17.12および Go 1.18.4より前に net/http の HTTP/1 クライアントで無効な Transfer-Encoding ヘッダーを受け入れると、ヘッダーを無効として不適切に拒否する中間サーバーと組み合わせた場合に、HTTP リクエストスマグリングが可能になります。(CVE-2022-1705)
-Go 1.17.12および Go 1.18.4より前の go/parser の Parse 関数における制御されない再帰により、攻撃者が、深くネストされた型または宣言を介して、スタック枯渇によりパニックを引き起こす可能性があります。(CVE-2022-1962)
- 1.17.9より前の Go および 1.18.1より前 1.18.xの encoding/pem で、大量の PEM データを介したデコードスタックオーバーフローが発生します。(CVE-2022-24675)
- 特定の無効な形式の証明書が提示された場合、1.18.1 より前の Go 1.18.xの crypto/x509 で Certificate.Verify が引き起こされ、macOS でパニックが発生する可能性があります。これにより、リモートの TLS サーバーが TLS クライアントにパニックを引き起こす可能性があります。(CVE-2022-27536)
- 1.18.6より前の Go および 1.19.1より前の 1.19.xの net/http では、シャットダウンが致命的なエラーによりプリエンプトされた場合、HTTP/2 接続が終了中にハングアップする可能性があるため、攻撃者がサービス拒否を引き起こす可能性があります。(CVE-2022-27664)
- Go 1.17.12および Go 1.18.4より前の encoding/xml の Decoder.Skip の制御されない再帰により、深くネスト化された XML ドキュメントを介してスタックの枯渇により攻撃者がパニックを引き起こす可能性があります。(CVE-2022-28131)
- Go 1.17.9より前および 1.18.1より前の 1.18.xの crypto/elliptic の汎用 P-256 機能により、長いスカラー入力を介したパニックが可能になります。(CVE-2022-28327)
- Reader.Read は、ファイルヘッダーの最大サイズに制限を設定しません。悪意を持って細工されたアーカイブにより、Read が無制限の量のメモリを割り当て、リソースの枯渇またはパニックを引き起こす可能性があります。
修正後の Reader.Read はヘッダーブロックの最大サイズを 1 MiB に制限します。(CVE-2022-2879)
- ReverseProxy によって転送されるリクエストには、net/http によって拒否される解析不可能なパラメーターを含め、受信リクエストからの生のクエリパラメーターが含まれています。これにより、Go プロキシが解析できない値を持つパラメーターを転送する際に、クエリパラメーターのスマグリングが発生する可能性があります。修正後の ReverseProxy は、ReverseProxy の後にアウトバウンドリクエストの Form フィールドが設定されると、転送されたクエリのクエリパラメーターをサニタイズします。Director 関数が戻り、プロキシがクエリパラメーターを解析したことを示します。クエリパラメーターを解析しないプロキシは、元のクエリパラメーターを変更せずに転送し続けます。(CVE-2022-2880)
- 1.17.10より前の Go および 1.18.2より前の 1.18.xに不適切な権限が割り当てられています。ゼロ以外のフラグパラメーターで呼び出されると、Faccessat 関数が、ファイルがアクセス可能であると誤って報告する可能性があります。
(CVE-2022-29526)
- Windows の Go 1.17.11 および Go 1.18.3 の前のパス/ファイルパスの Clean では、特定の無効なパスを有効な絶対パスに不適切に変換すると、ディレクトリトラバーサル攻撃が発生する可能性があります。(CVE-2022-29804)
- Go 1.17.11 および Go 1.18.3 より前の os/exec の Cmd.Start でのコードインジェクションにより、Cmd.Path が設定されていない場合に Cmd.Run、Cmd.Start、Cmd.Output、または Cmd.CombinedOutput を呼び出すことにより、.. com または ..exe という名前の作業ディレクトリで任意のバイナリを実行することが可能です。(CVE-2022-30580)
- Go 1.17.11および Go 1.18.3より前の crypto/tls のセッションチケットの ticket_age_add のランダムではない値により、TLS ハンドシェイクを観察できる攻撃者が、セッション再開中にチケットの有効期間を比較することで、連続する接続を相互に関連付けることができます。(CVE-2022-30629)
- Go 1.17.12および Go 1.18.4より前の io/fs における Glob の制御されない再帰により、攻撃者が、多数のパスセパレーターを含むパスを介して、スタック枯渇によりパニックを引き起こす可能性があります。
(CVE-2022-30630)
- Go 1.17.12および Go 1.18.4の前の compress/gzip の Reader.Read における制御されない再帰により、攻撃者が、多数の連結された長さゼロの圧縮ファイルを含むアーカイブを介して、スタック枯渇によりパニックを引き起こす可能性があります。(CVE-2022-30631)
- Go 1.17.12および Go 1.18.4より前の path/filepath における Glob の制御されない再帰により、攻撃者が、多数のパスセパレーターを含むパスを介して、スタック枯渇によりパニックを引き起こす可能性があります。
(CVE-2022-30632)
- Go 1.17.12および Go 1.18.4の前の encoding/xml の Unmarshal における制御されない再帰により、攻撃者は、「any」フィールドタグを使用するネスト化されたフィールドを持つ Go 構造体に XML ドキュメントをアンマーシャリングすることで、スタック枯渇によりパニックを引き起こす可能性があります。(CVE-2022-30633)
- Windows の Go 1.17.11 および Go 1.18.3 より前の crypto/rand における Read の無限ループにより、攻撃者が 1 << 32-1 バイトより大きいバッファを渡すことで、無限ハングを引き起こす可能性があります。(CVE-2022-30634)
- Go 1.17.12および Go 1.18.4より前の encoding/gob の Decoder.Decode の制御されない再帰により、深くネスト化された構造を含むメッセージを介して、スタック枯渇により攻撃者がパニックを引き起こす可能性があります。
(CVE-2022-30635)
- Go 1.17.12および Go 1.18.4の前の net/http でのクライアント IP アドレスの不適切な漏洩は、X-Forwarded-For ヘッダーの nil 値を含む Request.Header マップで httputil.ReverseProxy.ServeHTTP を呼び出すことで発生する可能性があります。これにより、クライアント IP を X-Forwarded-For ヘッダーの値として設定するための ReverseProxy が発生します。(CVE-2022-32148)
- エンコードされたメッセージが短すぎると、1.17.13 および 1.18.5より前の Go の math/big で、Float.GobDecode および Rat GobDecode にパニックが発生し、サービス拒否が発生する可能性があります。(CVE-2022-32189)
- 信頼できないソースから正規表現をコンパイルするプログラムは、メモリ枯渇またはサービス拒否に脆弱な場合があります。解析された正規表現は入力サイズに線形ですが、場合によっては定数係数が 40,000 にもなり、比較的小さな正規表現がはるかに多くのメモリを消費します。修正後に解析される各正規表現は 256 MB のメモリフットプリントに制限されます。表現がそれより多くのスペースを使用する正規表現は、拒否されます。正規表現の通常の使用は影響を受けません。(CVE-2022-41715)
- NUL 値がサニタイズされていないため、攻撃者が Windows で悪意を持って環境変数を設定できる可能性があります。
syscall.StartProcess および os/exec.Cmd で、NUL 値を含む無効な環境変数値が適切にチェックされません。悪意のある環境変数の値がこの動作を悪用して、別の環境変数に値を設定する可能性があります。例えば、環境変数文字列 A=B\x00C=D は、変数 A = B および C = D を設定します。(CVE-2022-41716)
- 攻撃者が、HTTP/2 リクエストを受け入れる Go サーバーで過剰なメモリ増加を引き起こす可能性があります。HTTP/2 サーバー接続には、クライアントによって送信された HTTP ヘッダーキーのキャッシュが含まれています。このキャッシュのエントリの合計数には上限がありますが、非常に大きな鍵を送信する攻撃者が、開いている接続ごとにサーバーに約 64 MiB を割り当てる可能性があります。(CVE-2022-41717)
- Windows では、制限されたファイルは os.DirFS および http.Dir を介してアクセスできます。- os.DirFS 関数および http.Dir タイプにより、特定のディレクトリをルートとするファイルのツリーへのアクセスが提供されます。これらの関数は、その root の下で Windows デバイスファイルへのアクセスを許可します。たとえば、os.DirFS(C: /tmp)。Open(COM1) は COM1 デバイスを開きます。
os.DirFS と http.Dir はどちらも読み取り専用のファイルシステムアクセスのみを提供します。さらに、Windows では、ディレクトリ (現在のドライブの root) の os.DirFS により、悪意を持って細工されたパスがドライブからエスケープし、システム上の任意のパスにアクセスする可能性があります。修正を適用することにより、os.DirFS() の動作が変更されました。
以前は、空の root は / と同等に扱われていたため、os.DirFS() としました。Open (tmp) はパス /tmp を開きました。これでエラーが返されるようになりました。(CVE-2022-41720)
- 悪意を持って細工された HTTP/2 ストリームが、HPACK デコーダーでの過剰な CPU 消費を引き起こし、少数の小さなリクエストからのサービス拒否を引き起こす可能性があります。(CVE-2022-41723)
- 大きなハンドシェイクレコードにより、crypto/tls でパニックを引き起こす可能性があります。クライアントとサーバーの両方が、大きな TLS ハンドシェイクレコードを送信する可能性があります。これにより、応答の構築を試行する際に、サーバーとクライアントはそれぞれパニックを引き起こします。これは、すべての TLS 1.3 クライアント、セッション再開を明示的に有効にする TLS 1.2 クライアント (Config.ClientSessionCache を nil 以外の値に設定)、およびクライアント証明書をリクエストする TLS 1.3 サーバー (Config.ClientAuth >= RequestClientCert に設定) に影響します。(CVE-2022-41724)
- net/http および mime/multipart での過剰なリソース消費によるサービス拒否が可能です。
mime/multipart.Reader.ReadForm によるマルチパートフォームの解析により、メモリおよびディスクファイルの大部分が無制限に消費される可能性があります。これは、Request メソッド FormFile、FormValue、ParseMultipartForm、および PostFormValue を持つ net/http パッケージのフォーム解析にも影響を与えます。ReadForm は maxMemory パラメーターを取り、最大 maxMemory バイト + 10MB (非ファイル部分用に予約済み) をメモリに保存するよう文書化されています。メモリに保存できないファイル部分は、一時ファイルのディスクに保存されます。ファイル以外のパーツ用に予約された設定不可の 10MB が大きすぎるため、それだけでサービス拒否のベクトルを開く可能性があります。ただし、ReadForm は、マップエントリのオーバーヘッド、パーツ名、MIME ヘッダーなど、解析されたフォームによって消費されるすべてのメモリを適切に考慮していなかったため、悪意をもって細工されたフォームが 10MB 以上を消費することがありました。さらに、ReadForm には作成されるディスクファイルの数に制限がなかったため、比較的小さなリクエスト本文で多数のディスク一時ファイルを作成することができました。修正により、ReadForm はさまざまな形式のメモリオーバーヘッドを適切に考慮し、メモリ消費の文書化された上限である 10MB + maxMemory バイトの範囲内に収まるようになりました。ユーザーは、この制限が高く、依然として危険である可能性があることを認識しておく必要があります。また、ReadForm は、複数のフォームパーツを 1 つの一時ファイルにまとめて、ディスク上の一時ファイルを最大 1 つまで作成するようになりました。mime/multipart.File インターフェース型のドキュメントには、ディスクに保存されている場合、File の基礎となる具象型は *os.File であると記述されています。このため、1 つのフォームに複数のファイルパーツが含まれる場合、パーツは 1 つのファイルに統合されるため、このようなことはなくなりました。各フォームパーツに対して個別のファイルを使用する以前の動作は、環境変数 GODEBUG=multipartfiles=distinct で再度有効にすることができます。ユーザーは、multipart.ReadForm およびそれを呼び出す http.Request メソッドが、一時ファイルによって消費されるディスクの量を制限するわけではないことに注意する必要があります。呼び出し元は、http.MaxBytesReader でフォームデータのサイズを制限できます。(CVE-2022-41725)
Nessus はこれらの問題をテストしておらず、代わりにアプリケーションの自己報告されたバージョン番号にのみ依存しています。
ソリューション
影響を受ける go1.18-openssl、go1.18-openssl-doc および / または go1.18-openssl-race パッケージを更新してください。
プラグインの詳細
ファイル名: suse_SU-2023-2312-1.nasl
エージェント: unix
サポートされているセンサー: Frictionless Assessment AWS, Frictionless Assessment Azure, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus
リスク情報
ベクトル: CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N
ベクトル: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
現状ベクトル: CVSS:3.0/E:P/RL:O/RC:C
脆弱性情報
CPE: p-cpe:/a:novell:suse_linux:go1.18-openssl-doc, p-cpe:/a:novell:suse_linux:go1.18-openssl, p-cpe:/a:novell:suse_linux:go1.18-openssl-race, cpe:/o:novell:suse_linux:15
必要な KB アイテム: Host/local_checks_enabled, Host/cpu, Host/SuSE/release, Host/SuSE/rpm-list
エクスプロイトの容易さ: Exploits are available
参照情報
CVE: CVE-2022-1705, CVE-2022-1962, CVE-2022-24675, CVE-2022-27536, CVE-2022-27664, CVE-2022-28131, CVE-2022-28327, CVE-2022-2879, CVE-2022-2880, CVE-2022-29526, CVE-2022-29804, CVE-2022-30580, CVE-2022-30629, CVE-2022-30630, CVE-2022-30631, CVE-2022-30632, CVE-2022-30633, CVE-2022-30634, CVE-2022-30635, CVE-2022-32148, CVE-2022-32189, CVE-2022-41715, CVE-2022-41716, CVE-2022-41717, CVE-2022-41720, CVE-2022-41723, CVE-2022-41724, CVE-2022-41725
SuSE: SUSE-SU-2023:2312-1