Skip to content

security: previewチャネルがSHA-256なしでバイナリ導入可能 #37

Description

@kuwa2005

概要

stable更新はマニフェストのSHA-256を必須とするが、preview更新はasset.sha256を任意扱いし、存在する場合のみ検証するため、チェックサムなしでもpreview導入が進みうる。

深刻度

根拠

  • src/update.rsrelease_info_from_preview_manifestsha256: asset.sha256.clone()(任意)
  • src/update.rsdownload_updateif 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)で発見。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingsecuritySecurity findings and hardening

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions