Skip to content

[Security][Supply Chain][Model] カスタムモデル配布元ではSHA-256検証が任意で、構造/サイズだけのモデルをローカル実行できる #501

Closed

Description

@shirokuma-xv

概要

標準のTrustedArtifactにはSHA-256が定義されていますが、カスタム配布元やTrustedArtifactに一致しないsourceでは、モデル検証へ期待ダイジェストが渡されない経路があります。

根拠

  • KizunaAI/AI/LocalAssistantModelManager.swift:1990-2026
  • KizunaAI/AI/LocalAssistantModelManager.swift:2248-2270
  • KizunaAI/AI/LocalAssistantModelArtifactValidator.swift:344-352

問題

カスタムURLのモデルは、ファイル形式・ヘッダー・サイズなどの構造検証を通れば、配布途中の差し替えや悪意ある配布物でも実行対象になり得ます。モデルファイル自体は通常データですが、ネイティブランタイムが複雑なGGUF/LiteRT-LMを解析するため、供給元の完全性を検証できないことはサプライチェーン上のリスクです。

現時点で任意コード実行を確認したという報告ではありません。暗号学的な完全性検証が任意であることを追跡するSecurity hardening Issueです。

修正案

カスタムモデルでもSHA-256を登録して実行前に必須検証し、digest未設定モデルは未検証と明示する。ダウンロード後だけでなく実行直前にも再検証する。

テスト

同じURLから内容を差し替えたモデルを用意し、digest不一致で保存済み扱い・実行開始にならないことを確認する。

Activity

  1. viuk-issue-summarizer commented on Aug 21, 2026

    @viuk-issue-summarizer

    Model not found: opencode/deepseek-v4-flash-free. Did you mean: deepseek-v4-flash, deepseek-v4-pro, gemini-3-flash?

    github run

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions