Amazon Linux 2: golang (ALASGOLANG1.19-2023-001)

critical Nessus プラグイン ID 182050

概要

リモートの Amazon Linux 2 ホストに、セキュリティ更新プログラムがありません。

説明

リモートホストにインストールされている golang のバージョンは 1.19.10-1より前です。したがって、ALAS2GOLANG1.19-2023-001 のアドバイザリに記載されている複数の脆弱性の影響を受けます。

P256 Curve の ScalarMult および ScalarBaseMult メソッドは、ある特定の非還元スカラー (曲線の次数より大きなスカラー) を使用して呼び出された場合、不適切な結果を返す場合があります。これは、crypto/ecdsa または crypto/ecdh の使用には影響を与えません。(CVE-2023-24532)

- HTTP および MIME ヘッダー解析により、少しの入力を解析する場合でも大量のメモリが割り当てられ、サービス拒否が発生する可能性があります。入力データの特定の異常なパターンにより、HTTP および MIME ヘッダーを解析するために使用される共通関数が、解析されたヘッダーを保持するために必要なメモリよりも大幅に多くのメモリを割り当てる可能性があります。攻撃者がこの動作を悪用して、HTTP サーバーに少しのリクエストから大量のメモリを割り当てさせ、メモリ枯渇やサービス拒否を引き起こす可能性があります。
修正により、ヘッダー解析は、解析されたヘッダーを保持するために必要なメモリのみを適切に割り当てるようになりました。
(CVE-2023-24534)

- マルチパートフォーム解析は、非常に多数のパーツを含むフォーム入力を処理する際に、大量の CPU およびメモリを消費する可能性があります。これにはいくつかの原因があります: 1. mime/multipart.Reader.ReadForm は、解析されたマルチパートフォームが消費できる合計メモリを制限します。ReadForm は、消費されるメモリの量を過小評価する可能性があり、意図したよりも大きな入力を受け入れる可能性があります。2. 合計メモリを制限しても、多数のパーツがあるフォームで多数の小さな割り当てが発生することでガベージコレクターへの負荷が高まることは考慮されません。3.
ReadForm は、多数の有効期間の短いバッファを割り当てる可能性があります。これにより、ガベージコレクターに対する負荷がさらに高まります。これらの要因の組み合わせにより、攻撃者が、マルチパートフォームを解析するプログラムに大量の CPU とメモリを消費させ、サービス拒否を引き起こす可能性があります。
これは、mime/multipart.Reader.ReadForm を使用するプログラムに影響を与え、Request メソッド FormFile、FormValue、ParseMultipartForm、および PostFormValue を持つ net/http パッケージのフォーム解析にも影響を与えます。修正により、ReadForm は解析されたフォームのメモリ消費をより適切に見積もるようになり、実行時間の短い割り当ての実行がより少なくなります。さらに、修正された mime/multipart.Reader は、解析されるフォームのサイズに次の制限を課します: 1. ReadForm で解析されるフォームに含めることができるパーツ数は 1000 以下です。この制限は、環境変数 GODEBUG = multipartmaxparts = で調整できます。2. NextPart および NextRawPart で解析されるフォームパーツに含めることができるヘッダーフィールドは、10,000 以下です。さらに、ReadForm で解析されたフォームに含めることができるヘッダーフィールドは、すべてのパーツで 10,000 以下です。この制限は、環境変数 GODEBUG = multipartmaxheaders = で調整できます。(CVE-2023-24536)

- 非常に大きな行番号の //line ディレクティブを含む Go ソースコードで Parse 関数を呼び出すと、整数オーバーフローにより無限ループが発生する可能性があります。(CVE-2023-24537)

- テンプレートは、バックティック (`) を Javascript の文字列デリミタとして適切に考慮せず、期待通りにエスケープしません。JS テンプレートリテラルには、ES6 以降、バックティックが使用されています。テンプレートの Javascript テンプレートリテラル内に Go テンプレートアクションが含まれている場合、アクションのコンテンツを使用してリテラルを終了し、任意の Javascript コードを Go テンプレートに注入できます。ES6 テンプレートリテラルはかなり複雑で、それ自体が文字列補間を実行できるため、Go テンプレートアクションをそれらの内部で使用することをシンプルに許可しないことが決定されました (例: var a = {{.}})。この動作を許可する明らかに安全な方法がないためです。これは github.com/google/safehtml と同じアプローチを取ります。修正により、Template.Parse は、ErrorCode の値が 12 であるこのようなテンプレートがあるとエラーを返すようになります。この ErrorCode は現在エクスポートされていませんが、Go 1.21のリリースでエクスポートされます。以前の動作に依存するユーザーは、GODEBUG フラグ jstmpllitinterp = 1 を使用してこれを再度有効にすることができますが、バックティックがエスケープされることに注意してください。これは注意して使用する必要があります。(CVE-2023-24538)

- 山括弧 (<>) は、CSS コンテキストに挿入しても危険な文字とは見なされません。複数のアクションを「/」で区切ったテンプレートを信頼できない入力で実行すると、CSS コンテキストが予期せず終了し、予期しない HTML が注入される可能性があります。(CVE-2023-24539)

- JavaScript の有効な空白文字がすべて空白文字と見なされるわけではありません。JavaScript コンテキストの文字セット \t\n\f\r\u0020\u2028\u2029 以外の空白文字が含まれ、アクションも含まれているテンプレートは、実行中に適切にサニタイズされない可能性があります。(CVE-2023-24540)

- 引用符で囲まれていない HTML 属性 (例: attr={{.}}) にアクションを含むテンプレートを空の入力で実行すると、HTML 正規化ルールにより、解析時に予期しない結果となる出力が発生する可能性があります。これにより、任意の属性をタグに注入できる可能性があります。(CVE-2023-29400)

- cgo の使用時に go コマンドがビルド時に予期しないコードを生成する可能性があります。これにより、cgo を使用する go プログラムの実行時に予期しない動作が発生する可能性があります。これは名前に改行文字があるディレクトリを含む信頼できないモジュールを実行しているときに発生する可能性があります。go コマンドを使用して、つまり go get を介して取得したモジュールは影響を受けません (GOPATH モードを使用して取得したモジュール、つまり GO111MODULE=off が影響を受ける可能性があります)。(CVE-2023-29402)

- Unix プラットフォームで、バイナリが setuid/setgid ビットで実行されている場合、Go ランタイムは異なる動作をしません。これにより、メモリ状態をダンプするときや、標準の i/o ファイル記述子のステータスを仮定するときなど、特定の場合に危険な場合があります。標準の I/O ファイル記述子を閉じた状態で setuid/setgid バイナリを実行した場合、ファイルを開くと、昇格した権限で予期しないコンテンツの読み書きが行われる可能性があります。
同様に、setuid/setgid プログラムがパニックまたはシグナルによって終了した場合、そのレジスタのコンテンツが漏洩する可能性があります。(CVE-2023-29403)

go コマンドは、cgo を使用中の場合、ビルドタイムに任意のコードを実行する可能性があります。これは悪意のあるモジュールで go get を実行している、あるいは信頼できないコードをビルドする他のコマンドを実行しているときに発生する可能性があります。これは、#cgo LDFLAGS ディレクティブで指定されたリンカーフラグにより発生する可能性があります。オプションではない多数のフラグの引数がオプションであると誤って見なされ、LDFLAGS サニタイズを通じて許可されていないフラグのスマグリングが可能になります。これは gc コンパイラと gccgo コンパイラの両方の使用に影響します。(CVE-2023-29404)

go コマンドは、cgo を使用中の場合、ビルドタイムに任意のコードを実行する可能性があります。これは悪意のあるモジュールで go get を実行している、あるいは信頼できないコードをビルドする他のコマンドを実行しているときに発生する可能性があります。これは、#cgo LDFLAGS ディレクティブで指定されたリンカーフラグにより発生する可能性があります。埋め込まれたスペースを含むフラグが不適切に処理されるため、別のフラグの引数に含めることで、許可されていないフラグを LDFLAGS サニタイズを通してスマグリングすることが可能です。これは gccgo コンパイラの使用にのみ影響します。(CVE-2023-29405)

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

ソリューション

「yum update golang」を実行してシステムを更新してください。

参考資料

https://alas.aws.amazon.com/AL2/ALASGOLANG1.19-2023-001.html

https://alas.aws.amazon.com/cve/html/CVE-2023-24532.html

https://alas.aws.amazon.com/cve/html/CVE-2023-24534.html

https://alas.aws.amazon.com/cve/html/CVE-2023-24536.html

https://alas.aws.amazon.com/cve/html/CVE-2023-24537.html

https://alas.aws.amazon.com/cve/html/CVE-2023-24538.html

https://alas.aws.amazon.com/cve/html/CVE-2023-24539.html

https://alas.aws.amazon.com/cve/html/CVE-2023-24540.html

https://alas.aws.amazon.com/cve/html/CVE-2023-29400.html

https://alas.aws.amazon.com/cve/html/CVE-2023-29402.html

https://alas.aws.amazon.com/cve/html/CVE-2023-29403.html

https://alas.aws.amazon.com/cve/html/CVE-2023-29404.html

https://alas.aws.amazon.com/cve/html/CVE-2023-29405.html

https://alas.aws.amazon.com/faqs.html

プラグインの詳細

深刻度: Critical

ID: 182050

ファイル名: al2_ALASGOLANG1_19-2023-001.nasl

バージョン: 1.3

タイプ: local

エージェント: unix

公開日: 2023/9/27

更新日: 2023/12/8

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

リスク情報

VPR

リスクファクター: Medium

スコア: 6.7

CVSS v2

リスクファクター: Critical

基本値: 10

現状値: 7.4

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

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

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 8.5

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

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

脆弱性情報

CPE: p-cpe:/a:amazon:linux:golang, p-cpe:/a:amazon:linux:golang-bin, p-cpe:/a:amazon:linux:golang-docs, p-cpe:/a:amazon:linux:golang-misc, p-cpe:/a:amazon:linux:golang-race, p-cpe:/a:amazon:linux:golang-shared, p-cpe:/a:amazon:linux:golang-src, p-cpe:/a:amazon:linux:golang-tests, cpe:/o:amazon:linux:2

必要な KB アイテム: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

エクスプロイトの容易さ: No known exploits are available

パッチ公開日: 2023/8/7

脆弱性公開日: 2023/3/8

参照情報

CVE: CVE-2023-24532, CVE-2023-24534, CVE-2023-24536, CVE-2023-24537, CVE-2023-24538, CVE-2023-24539, CVE-2023-24540, CVE-2023-29400, CVE-2023-29402, CVE-2023-29403, CVE-2023-29404, CVE-2023-29405

IAVB: 2023-B-0022-S, 2023-B-0029-S, 2023-B-0040-S, 2023-B-0068-S, 2023-B-0080-S