概要
stable更新はマニフェストのSHA-256を必須とするが、preview更新はasset.sha256を任意扱いし、存在する場合のみ検証するため、チェックサムなしでもpreview導入が進みうる。
深刻度
高
根拠
src/update.rs — release_info_from_preview_manifest が sha256: asset.sha256.clone()(任意)
src/update.rs — download_update は if let Some(expected) = &release.sha256 のときのみ検証
src/remote/attach.rs — previewのリモートアセット経路も同様にチェックサム必須ではない(stableは必須)
影響
previewチャネルでは、改ざんまたは不完全なマニフェストにより未検証バイナリが導入されうる(curl -L のHTTPS限定不足と組み合わさると悪化)。
推奨対策
- previewでもstable同様にSHA-256を必須とし、欠落時は更新/導入を拒否する
- previewチェックサム欠落拒否の回帰テストを追加する
- Windows経路は既にチェックサム必須のため、Unixを揃える
監査
フォークセキュリティ監査(2026-09-14)で発見。
概要
stable更新はマニフェストのSHA-256を必須とするが、preview更新は
asset.sha256を任意扱いし、存在する場合のみ検証するため、チェックサムなしでもpreview導入が進みうる。深刻度
高
根拠
src/update.rs—release_info_from_preview_manifestがsha256: asset.sha256.clone()(任意)src/update.rs—download_updateはif let Some(expected) = &release.sha256のときのみ検証src/remote/attach.rs— previewのリモートアセット経路も同様にチェックサム必須ではない(stableは必須)影響
previewチャネルでは、改ざんまたは不完全なマニフェストにより未検証バイナリが導入されうる(curl
-LのHTTPS限定不足と組み合わさると悪化)。推奨対策
監査
フォークセキュリティ監査(2026-09-14)で発見。