| 版本 | 是否支持 | 备注 |
|---|---|---|
4.x(Touchstone) |
✅ | 当前 |
3.4.x(dehallucination) |
❌ | 改名前的最后一版,不再维护 |
| < 3.4 | ❌ | — |
版本号以
VERSION文件与SKILL.mdfrontmatter 为准;发版流程见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(私有报告)提交,内容包括:
- 影响的文件与版本
- 复现步骤(尽量给出可运行的最小示例)
- 影响面(会不会导致误放行 / 误报 / 信息泄露 / 任意命令执行)
- 建议修法(可选)
我们承诺:确认后 7 天内给出初步响应,修复后在同一 advisory 下披露。
鉴于本工具的用途,这几类缺陷的严重度会被提高:
| 类型 | 为什么严重 |
|---|---|
| 误放行:本该拦住却返回 0 | 让幻觉内容通过闸门,比没有闸门更危险 |
| 缓存投毒:缓存可被伪造出 PASS 结果 | 直接绕过整个核查链 |
路径穿越:--root 之外的文件被读写 |
可能读到仓库外的敏感文件 |
| 命令注入:脚本拼接命令字符串 | 可导致任意命令执行 |
| 依赖检查被绕过:manifest 解析可被构造输入欺骗 | 供应链防护失效 |
- 离线模式下外部包只能记为 UNVERIFIED,不能判定存在与否。这是设计选择: "不知道"不等于"安全"。
- hook 脚本解析失败一律放行。这是刻意的:绝不让工具自身的 bug 卡住用户工作。 代价是 hook 配置错误时会静默失效——所以配置后请手动触发一次验证。
dep_guard.py的符号与导出检查基于文本匹配,不是真正的编译器语义分析, 存在漏报与误报。编译器才是最终裁判。