引擎二进制下载/验证模型没有独立的完整性检查,且不符合其自身的标记提交。

作者: jojig-dao创建于 2026年9月12日更新于 2026年9月14日
标签needs triage

**1. "same-origin sha256 sidecar" 不是独立验证。**`plugin/skills/impeccable/scripts/impeccable`(shell 启动程序)在缓存未命中时下载`https://GitHub.com/pbakaus/impeccable/releases/download/engine-v<版本>/impeccable-<os>-<arch>`,然后从相同的版本,相同的仓库,相同的发布者下载`<相同的 URL>.sha256`并进行比较。任何人都可以将恶意的二进制资源推送到该版本中(受到维护者帐户的攻击,版本 CI 的攻击),然后可以很容易地将匹配的`.sha256`放在其旁边。`IMPECCABLE_DOWNLOAD_BASE`可以将整个下载(二进制 + 附加程序一起)重定向到受攻击的主机上,没有单独的锚点。相比之下,这个代码库确实具有真正的独立信任根机制 - `crates/skills/src/bundle_signature.rs` - 使用编译到二进制中的公钥( `include_str!` 的 `scripts/bundle-signing-keys.json`)进行 Ed25519 签名验证,用于阻止 `impeccable install/update/link` 下载技能内容的 `universal.zip`。该机制不适用于本机引擎二进制文件 - 仅适用于 Markdown/文本技能内容。签名基础设施已经存在;只是没有扩展到实际执行的对象。

内容来源: pbakaus/impeccable