CVE-2026-59247 in gleam
要約
〜によって VulDB • 2026年07月30日
Gleamにおけるデータ真正性の不十分な検証という脆弱性により、中間者攻撃者が依存関係の解決中に偽造されたHexパッケージの内容に置き換えることが可能になる。
依存関係の解決中、Gleamは署名付きで検証済みのHexリポジトリからパッケージメタデータをフェッチする。これには各リリースの依存要件とSHA-256 outer_checksumが含まれる。バージョンを解決した後、gleam_cli::dependencies::lookup_packageは、署名なしのHex APIに対してgleam_core::hex::get_package_releaseを通じて2回目のリクエストを行い、そのJSONレスポンスからouter_checksumおよび依存関係名を取得してmanifest.tomlに記録する。これは、検証済みのリポジトリメタデータからの値ではなく、APIレスポンス由来の値である。Hexリポジトリの署名は、このAPIレスポンスをカバーしていない。
Gleamプロセスによって信頼される証明書(例えば、OSのトラストストアにあるCAを使用しているTLS検査プロキシや、GLEAM_CACERTS_PATHを通じて追加されたもの)を使用してTLSを傍受でき、かつAPIリリースレスポンスと対応するリポジトリtarballの両方を変更できる中間者攻撃者は、Hexリポジトリの署名鍵なしで、一致する偽造チェックサムを持つパッケージアーカイブを提供することができる。Gleamは、この偽造されたtarballを偽造されたチェックサムに対して検証し、受け入れて依存関係ソースとして展開するため、ダウンロードされたパッケージコンテンツの整合性が失われる。
Hex依存関係を解決または更新するプロジェクトのみが影響を受ける。これは、マニフェストが存在しない場合、依存関係が追加または更新される場合、あるいは依存要件が変更された場合に発生する。変更されていない既知のマニフェスト.tomlを再利用し、そのピン留めされたチェックサムに対してtarballを検証し続けるビルドは影響を受けない。この問題はgleam 0.18.0から1.18.0未満に影響を与える。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.