Ubuntu 20.04LTS/22.04 LTS/23.04/23.10: Go の脆弱性 (USN-6574-1)

high Nessus プラグイン ID 187937

概要

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

説明

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

- html/template パッケージは、<script> コンテキストでは HTML のようなコメントトークンや、ハッシュタグ #! コメントトークンを適切に処理しません。このため、テンプレートパーサーが <script> コンテキストのコンテンツを不適切に解釈し、アクションが不適切にエスケープされる可能性があります。これが悪用され、XSS 攻撃が実行される可能性があります。(CVE-2023-39318)

- html/template パッケージは、<script、<!--、</script within JS literals in ><script> コンテキストの発生を処理するための適切なルールを適用しません。このため、テンプレートパーサーがスクリプトコンテキストが早期に終了すると考えて、アクションが不適切にエスケープされる可能性があります。これが悪用され、XSS 攻撃が実行される可能性がありました。(CVE-2023-39319)

- line ディレクティブ (//line) は //go での制限のバイパスに使用できます: cgo_ ディレクティブ。コンパイル中に、ブロックされたリンカーとコンパイラフラグを渡すことができます。これにより、go build の実行時に、いずれかのコードが予期せず実行される可能性があります。line ディレクティブでは、ディレクティブが存在するファイルの絶対パスが必要です。そのため、この問題の悪用が非常に複雑になります。(CVE-2023-39323)

- リクエストを迅速に作成し、すぐにリセットする悪意のある HTTP/2 クライアントは、過剰なサーバーリソースの消費を引き起こす可能性があります。リクエストの総数は http2.Server.MaxConcurrentStreams 設定によって制限されますが、進行中のリクエストをリセットすると、攻撃者は既存のリクエストの実行中に新しいリクエストを作成することが可能です。修正が適用されると、HTTP/2 サーバーは同時に実行するハンドラー goroutine の数をストリームの同時実行制限 (MaxConcurrentStreams) に制限するようになりました。制限に達したときに到着する新しいリクエスト (これは、クライアントが既存の処理中のリクエストをリセットした後にのみ発生する可能性があります) は、ハンドラーが終了するまでキューに入れられます。リクエストキューが大きくなりすぎると、サーバーは接続を終了します。この問題は、HTTP/2 を手動で構成するユーザー向けに golang.org/x/net/http2 でも修正されています。デフォルトのストリーム同時実行制限は、HTTP/2 接続あたり 250 ストリーム (リクエスト) です。この値は golang.org/x/net/http2 パッケージを使用して調整できます。Server.MaxConcurrentStreams 設定と ConfigureServer 関数を参照してください。(CVE-2023-39325)

- 悪意のある HTTP 送信者はチャンク拡張を使用して、リクエストまたは応答本文から読み取る受信者に、本文よりも多くのバイトをネットワークから読み取らせることができます。悪意のある HTTP クライアントはこれをさらに悪用し、ハンドラーがリクエスト本文全体を読み取ることができないときに、サーバーに大量のデータ (最大約 1 GiB) を自動的に読み取らせる可能性があります。チャンク拡張は、あまり使用されない HTTP 機能であり、チャンクされたエンコーディングを使用して送信されるリクエストまたは応答本文に追加のメタデータを含めることを許可します。net/http チャンクエンコーディングリーダーは、このメタデータを破棄します。送信者は、転送されるバイトごとに大きなメタデータセグメントを挿入することで、これを悪用できます。チャンク読み取りプログラムは、エンコードされたバイトに対する実際の本文の比率が小さすぎる場合にエラーを生成するようになりました。(CVE-2023-39326)

- HTTP/2 プロトコルでは、リクエストのキャンセルによって多数のストリームを迅速にリセットできるため、サービス拒否 (サーバーリソースの消費) を引き起こすことができます。これは、2023 年 8 月から 10 月まで、野放しで悪用されていました。(CVE-2023-44487)

- サフィックスが .git のモジュールを取得するために go get を使用すると、そのモジュールに GOINSECURE が設定されていなくても、安全な https: // および git+ssh: // プロトコルでそのモジュールを利用できない場合、予期せず安全でない git:// プロトコルにフォールバックすることがあります。これは、モジュール proxy を使用せずモジュールを直接フェッチしている (つまり GOPROXY=off) ユーザーのみに影響します。(CVE-2023-45285)

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

ソリューション

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

参考資料

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

プラグインの詳細

深刻度: High

ID: 187937

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

バージョン: 1.1

タイプ: local

エージェント: unix

公開日: 2024/1/11

更新日: 2024/2/9

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

リスク情報

VPR

リスクファクター: Medium

スコア: 6.7

CVSS v2

リスクファクター: High

基本値: 7.8

現状値: 6.4

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

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

CVSS v3

リスクファクター: High

基本値: 8.1

現状値: 7.5

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

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

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

脆弱性情報

CPE: cpe:/o:canonical:ubuntu_linux:20.04:-:lts, cpe:/o:canonical:ubuntu_linux:22.04:-:lts, cpe:/o:canonical:ubuntu_linux:23.04, cpe:/o:canonical:ubuntu_linux:23.10, p-cpe:/a:canonical:ubuntu_linux:golang-1.20, p-cpe:/a:canonical:ubuntu_linux:golang-1.20-go, p-cpe:/a:canonical:ubuntu_linux:golang-1.20-src, p-cpe:/a:canonical:ubuntu_linux:golang-1.21, p-cpe:/a:canonical:ubuntu_linux:golang-1.21-go, p-cpe:/a:canonical:ubuntu_linux:golang-1.21-src

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

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

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

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

脆弱性公開日: 2023/9/7

CISA の既知の悪用された脆弱性の期限日: 2023/10/31

参照情報

CVE: CVE-2023-39318, CVE-2023-39319, CVE-2023-39323, CVE-2023-39325, CVE-2023-39326, CVE-2023-44487, CVE-2023-45285

USN: 6574-1