Skip to content

Security: cndoin/touchstone

Security

SECURITY.md

安全政策

支持版本

版本 是否支持 备注
4.x(Touchstone) ✅ 当前
3.4.x(dehallucination) ❌ 改名前的最后一版,不再维护
< 3.4 ❌ —

版本号以 VERSION 文件与 SKILL.md frontmatter 为准;发版流程见 RELEASE.md。


这个工具的性质(先说清楚)

touchstone 是防御性工具:它帮助发现 AI 产出中的幻觉与供应链风险, 本身不执行任何高危操作:

  • 不联网上传你的代码(联网仅用于核查 URL / DOI / 包 registry 的存在性)
  • 不修改被检查的项目(ledger.py 只写 .touchstone/ 下的账本文件)
  • 不执行除你显式传入的命令之外的任何命令(hardcheck.py --cmd 是你自己给的)
  • 拦截高危命令的 hook(guard_bash.py)只做阻断,不会替你执行任何东西

执行原则:执行权限只能来自人,不能来自文件

命令来源 例子 是否执行
人当场传入 hardcheck.py --cmd "..."、ledger.py add --verify-cmd "..." 执行 —— 你在终端里当场给的,权责在你自己
项目内文件 claims 里的 command(结构见 assets/claim-schema.json)、账本 verify.cmd(见 assets/ledger-schema.json) 默认不执行 —— 文件可能来自克隆来的仓库,它没有资格授权

第二行是 v4.2.1 修复的缺陷:verify_gate.py 此前会自动执行 claims 里的 command,构成「clone 一个恶意仓库即 RCE」,且绕过 guard_bash(hook 是宿主直接 fork 的子进程,不走 Bash 工具调用)。现在该字段只被记录。账本里的命令须显式加 ledger.py check --allow-exec 才执行。详见 CHANGELOG.md v4.2.1。


报告漏洞

请不要开公开 issue 报告安全问题。

请通过 GitHub 的 Security Advisory(私有报告)提交,内容包括:

  1. 影响的文件与版本
  2. 复现步骤(尽量给出可运行的最小示例)
  3. 影响面(会不会导致误放行 / 误报 / 信息泄露 / 任意命令执行)
  4. 建议修法(可选)

我们承诺:确认后 7 天内给出初步响应,修复后在同一 advisory 下披露。


特别关注这几类问题

鉴于本工具的用途,这几类缺陷的严重度会被提高:

类型 为什么严重
误放行:本该拦住却返回 0 让幻觉内容通过闸门,比没有闸门更危险
缓存投毒:缓存可被伪造出 PASS 结果 直接绕过整个核查链
路径穿越:--root 之外的文件被读写 可能读到仓库外的敏感文件
命令注入:脚本拼接命令字符串 可导致任意命令执行
依赖检查被绕过:manifest 解析可被构造输入欺骗 供应链防护失效

已知限制(不是漏洞)

  • 离线模式下外部包只能记为 UNVERIFIED,不能判定存在与否。这是设计选择: "不知道"不等于"安全"。
  • hook 脚本解析失败一律放行。这是刻意的:绝不让工具自身的 bug 卡住用户工作。 代价是 hook 配置错误时会静默失效——所以配置后请手动触发一次验证。
  • dep_guard.py 的符号与导出检查基于文本匹配,不是真正的编译器语义分析, 存在漏报与误报。编译器才是最终裁判。

There aren't any published security advisories