CVE-2024-24787 (CVSS 9.8): Go Vulnerability Could Lead to Code Execution
2024/05/08 SecurityOnline — シンプルで効率的なソフトウェア開発を実現する Go プログラミング言語で、最近になって発見された2つの深刻な脆弱性に対処する、セキュリティ・アドバイザリが発表された。Go 環境で確認されたのは、DNS 操作における任意のコード実行 CVE-2024-24787 と、無限ループ CVE-2024-24788 の脆弱性である。

CVE-2024-24787 (CVSS:9.8): Darwin でのビルドにおける任意のコード実行
この脆弱性は、Darwin オペレーティング・システムに特有のものであり、CGO を取り込んだ Go モジュールのビルド・プロセスで、不注意に任意のコード実行を許してしまう可能性を持つ。この欠陥は、Apple 版のリンカー (ld) を使用する際の “#cgo LDFLAGS” ディレクティブの “-lto_library”フラグの誤用に起因する。
従来においては、このフラグを使用して、Darwin リンカーは LTO ライブラリの設定を許可していたが、ライブラリのリンクに使用される無害な “-lx” フラグとの類似性の問題がある。したがって、以前の Go における “安全なリンカー・フラグ” 検証では、チェックされていなかった方法となる。この脆弱性の悪用に成功した 攻撃者は、悪意の LTO ライブラリを読み込み、”go build” コマンドによるビルド プロセス中に、任意のコードを実行する可能性を持つ。
CVE-2024-24788 (cvss 7.5):不正な DNS メッセージによる無限ループ
この脆弱性は、Go の DNS ルックアップ関数内に存在し、Go コードに依存するアプリケーションやサーバを、不正な DNS レスポンスでクラッシュさせる可能性を持つ。細工されたレスポンスにより無限ループが引き起こされ、サービス拒否 (DoS) シナリオにつながる可能性がある。
アプリケーションおよびサービスのクラッシュや、リソースへのアクセス拒否の可能性は、アップタイムが重要な Web システムにおいて極めて重大な脅威となる。
Go 1.22.3/1.21.10 へのアップデート
Darwin システムで Go を使用している開発プロジェクトまたは、Go の DNS ルックアップ機能を使用しているプロジェクトでは、バージョン 1.22.3/1.21.10 へのアップデートを優先する必要がある。これらのバージョンには、上記の攻撃ベクターをシャットダウンするための修正分が含まれている。
まず、Darwin ですが、Wikipedia では「Darwin は、macOS (以前の Mac OS X)/iOS/watchOS/tvOS/iPadOS/visionOS/bridgeOS のコアとなる、Unix オペレーティング・システムのことである。 Apple がリリースした、独立したオープンソース・オペレーティング・システムとして、以前は存在していた」と説明されています。したがって、この記事で指摘されている CVE-2024-24787 は、Apple の OS 全般が対象となるはずです。ご利用の開発チームは、ご注意ください。よろしければ、Golang で検索も、ご利用ください。
You must be logged in to post a comment.