返回插件页
安全检测报告

dsh-auto-review存在风险84/100

@PerryLink
安全npm 预构建包代码行为与描述一致

审批链上的第二模型自动审查:只读审查子代理返回带理由的 allow/deny 结构化裁决,默认 fail-closed。

Star71GitHub · 仅用于排序
npm 周下载1,115dsh-auto-review
固定 commit252e5b098d2026-08-21
扫描时间2026-08-21 13:16 UTCHT-DSH-0.2.2

检测结论

CAUTION · HT-DSH-0.2.2 · 252e5b0

六条命中均位于 eval/cordis.yml,这是随包分发但独立于 dsh.bundle 的 dsh-eval CLI 自测评测组合,仅在用户手动运行该 CLI 时生效,不会覆盖用户真实主机 profile 的 credentials/approval/sandbox 等安全关键行。所有被“覆盖”的能力均使用官方 @deepseek-ai 包,approval 设为 never(更严格的拒绝而非放行),sandbox 限定在工作区根目录内,符合插件自述的 fail-closed、只读审查语义。真正影响用户主机的是 cordis.patch.yml,其中仅插入 auto-review 应答器并将 bash/write 工具审批交给 AI 复核,human 兜底未被短路,与描述一致。需用户注意:一旦启用该插件,bash 与 write 工具的审批将由第二模型自动裁决,若未添加 edit 到 overrides 则 edit 仍走人工。

有效发现(置信度 ≥ 中):严重 0 0 17 4· 原始命中 26 · 低置信度不计入 5
安装
dsh plugin --profile web add dsh-auto-review
将安装 npm dsh-auto-review@0.5.3;本报告检测的是 commit 252e5b0。发布包与源码尚未比对,请核对版本。
存在 17 项中等级发现,安装前请先阅读证据。

检测明细

每层做了什么、跑没跑、有效发现数
L0来源身份npm 元数据 ↔ 仓库已完成0
L1供应链安装脚本 · 未固定依赖 · 锁文件有锁文件0
L1已知漏洞OSV.dev · 仅生产依赖闭包已完成0
L2静态分析92 个文件 · 原始命中 7已完成4
L2.5模型研判sonnet · 7/7已完成7
L3权限清单覆盖宿主行 0 · 安全关键 0 · 敏感 0已完成17
L4隔离动态运行容器 · 假凭据金丝雀 · 出站记录未执行
L5人工复核申诉 72 小时内复核未执行
未执行的层不构成通过;只有“已完成”的层提供了证据。分数 = 100 − 去重规则罚分(严重 35 / 高 16 / 中 5 / 低 1),只用于同策略版本内排序。

权限清单 · cordis patch 解析

插件安装后会改变宿主的哪些行
插入的行1
覆盖/禁用的宿主行0
!!js 表达式3
浏览器端 bundleweb
覆盖的宿主行
没有覆盖任何 dsh-base 宿主行。
安全关键 seam · 未改动
sandboxsandbox-policybash-sandboxpwsh-sandboxapprovalpermissioncredentialssubprocessshell-envfs-observation-policy
“未改动”只说明该插件的 patch 没有覆盖这些行;插件代码仍以宿主进程权限运行。
插入的行
auto-review · dsh-auto-review
随包分发的其他 cordis 配置 · 需用户手动应用
eval/cordis.yml· 19 行含安全关键行
这些文件未被 dsh.bundle 引用,安装时不会自动生效;只有用户用 --patch 或复制进 profile 时才会改变宿主。

证据

21 项有效 · 按严重度排序 · 严重项不折叠
HT-CONFIG-001Cordis 配置包含可执行 !!js 表达式
置信度 高L3 · DSH 权限语义
eval/cordis.yml:63GitHub
63!!js "process.env.DSH_EVAL_SESSIONS_ROOT ?? dshHomePath('sessions')"
规则备注 · 表达式访问模块、进程或网络,超出读取注入服务的常规用法
!!js 是 DSH 的官方配置机制;只有表达式引入模块、访问进程或网络时才超出常规用法。
修复建议只读取注入的服务;需要更多能力时改为结构化配置并记录副作用。
HT-CONFIG-001Cordis 配置包含可执行 !!js 表达式
置信度 高L3 · DSH 权限语义
eval/cordis.yml:64GitHub
64!!js "process.env.DSH_EVAL_SESSION_COMPRESSION ?? 'none'"
规则备注 · 表达式访问模块、进程或网络,超出读取注入服务的常规用法
!!js 是 DSH 的官方配置机制;只有表达式引入模块、访问进程或网络时才超出常规用法。
修复建议只读取注入的服务;需要更多能力时改为结构化配置并记录副作用。
HT-PERMISSION-002覆盖敏感宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:37GitHub
37override: id=settings name=@deepseek-ai/dsh-settings-file
规则备注 · 替换实现 设置(settings);该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
改写系统提示词、模型调用、会话持久化或工具行会改变 Agent 的行为与数据去向。
修复建议在 README 中说明覆盖了哪些行及原因,并尽量只重述必要的配置键。
HT-PERMISSION-001覆盖安全关键宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:40GitHub
40override: id=credentials name=@deepseek-ai/dsh-credentials-local
规则备注 · 替换实现 凭据存取(credentials);该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
模型研判功能所需

仅存在于 eval/cordis.yml,是 dsh-eval CLI 独立评测环境的组成部分,使用官方 @deepseek-ai/dsh-credentials-local,未被 dsh.bundle 引用,不影响用户主机 profile。

按 id 覆盖或关闭 sandbox、approval、credentials 等行,会让整个 DSH 实例的信任边界由插件代码决定。
修复建议逐项解释并最小化安全关键能力替换,同时接受人工复核。
HT-PERMISSION-002覆盖敏感宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:60GitHub
60override: id=session-persistence-jsonl name=@deepseek-ai/dsh-session-persistence-jsonl config[root,compression]
规则备注 · 替换实现 会话持久化(session-persistence-jsonl);该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
改写系统提示词、模型调用、会话持久化或工具行会改变 Agent 的行为与数据去向。
修复建议在 README 中说明覆盖了哪些行及原因,并尽量只重述必要的配置键。
HT-PERMISSION-002覆盖敏感宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:68GitHub
68override: id=session-projection name=@deepseek-ai/dsh-session-projection
规则备注 · 替换实现 session-projection;该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
改写系统提示词、模型调用、会话持久化或工具行会改变 Agent 的行为与数据去向。
修复建议在 README 中说明覆盖了哪些行及原因,并尽量只重述必要的配置键。
HT-PERMISSION-002覆盖敏感宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:72GitHub
72override: id=subagent name=@deepseek-ai/dsh-subagent
规则备注 · 替换实现 subagent;该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
改写系统提示词、模型调用、会话持久化或工具行会改变 Agent 的行为与数据去向。
修复建议在 README 中说明覆盖了哪些行及原因,并尽量只重述必要的配置键。
HT-PERMISSION-002覆盖敏感宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:74GitHub
74override: id=subagent-spawn-in-process name=@deepseek-ai/dsh-subagent-spawn-in-process config[providerName]
规则备注 · 替换实现 subagent-spawn-in-process;该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
改写系统提示词、模型调用、会话持久化或工具行会改变 Agent 的行为与数据去向。
修复建议在 README 中说明覆盖了哪些行及原因,并尽量只重述必要的配置键。
HT-PERMISSION-002覆盖敏感宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:79GitHub
79override: id=subagent-fork-in-process name=@deepseek-ai/dsh-subagent-fork-in-process config[providerName]
规则备注 · 替换实现 subagent-fork-in-process;该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
改写系统提示词、模型调用、会话持久化或工具行会改变 Agent 的行为与数据去向。
修复建议在 README 中说明覆盖了哪些行及原因,并尽量只重述必要的配置键。
HT-PERMISSION-001覆盖安全关键宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:86GitHub
86override: id=approval name=@deepseek-ai/dsh-user-approval config[policy]
规则备注 · 替换实现 工具审批(approval);该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
模型研判功能所需

policy: never 是评测 CLI 的严格 fail-closed 无人值守策略(拒绝而非放行),与插件声明的 fail-closed 语义一致,仅在手动运行 dsh-eval 时生效。

按 id 覆盖或关闭 sandbox、approval、credentials 等行,会让整个 DSH 实例的信任边界由插件代码决定。
修复建议逐项解释并最小化安全关键能力替换,同时接受人工复核。
HT-PERMISSION-001覆盖安全关键宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:92GitHub
92override: id=sandbox name=@deepseek-ai/dsh-sandbox-local
规则备注 · 替换实现 命令沙箱(sandbox);该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
模型研判功能所需

使用官方 @deepseek-ai/dsh-sandbox-local,为独立评测组合提供文件效果边界,非替换用户主机 sandbox 实现。

按 id 覆盖或关闭 sandbox、approval、credentials 等行,会让整个 DSH 实例的信任边界由插件代码决定。
修复建议逐项解释并最小化安全关键能力替换,同时接受人工复核。
HT-PERMISSION-001覆盖安全关键宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:94GitHub
94override: id=sandbox-policy name=@deepseek-ai/dsh-sandbox-policy config[mode,workspaceRoot]
规则备注 · 替换实现 沙箱策略(sandbox-policy);该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
模型研判功能所需

sandbox-policy 设为 workspace-write 且 workspaceRoot 限定在 DSH_EVAL_WORKSPACE_ROOT/cwd,权限范围受限,是评测沙箱的必要配置。

按 id 覆盖或关闭 sandbox、approval、credentials 等行,会让整个 DSH 实例的信任边界由插件代码决定。
修复建议逐项解释并最小化安全关键能力替换,同时接受人工复核。
HT-PERMISSION-001覆盖安全关键宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:103GitHub
103override: id=subprocess name=@deepseek-ai/dsh-subprocess-local
规则备注 · 替换实现 子进程执行(subprocess);该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
模型研判功能所需

官方 @deepseek-ai/dsh-subprocess-local 用于评测环境中 ripgrep 等托管子进程,非隐藏的宿主级子进程劫持。

按 id 覆盖或关闭 sandbox、approval、credentials 等行,会让整个 DSH 实例的信任边界由插件代码决定。
修复建议逐项解释并最小化安全关键能力替换,同时接受人工复核。
HT-PERMISSION-001覆盖安全关键宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:109GitHub
109override: id=fs-observation-policy name=@deepseek-ai/dsh-fs-observation-policy
规则备注 · 替换实现 文件可见性策略(fs-observation-policy);该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
模型研判功能所需

官方 @deepseek-ai/dsh-fs-observation-policy 组件,是评测组合内文件可见性策略的标准挂载,未覆盖用户实际 profile。

按 id 覆盖或关闭 sandbox、approval、credentials 等行,会让整个 DSH 实例的信任边界由插件代码决定。
修复建议逐项解释并最小化安全关键能力替换,同时接受人工复核。
HT-PERMISSION-002覆盖敏感宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:112GitHub
112override: id=tool-fs name=@deepseek-ai/dsh-tool-fs
规则备注 · 替换实现 文件工具(tool-fs);该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
改写系统提示词、模型调用、会话持久化或工具行会改变 Agent 的行为与数据去向。
修复建议在 README 中说明覆盖了哪些行及原因,并尽量只重述必要的配置键。
HT-PERMISSION-002覆盖敏感宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:115GitHub
115override: id=tool-fs-search name=@deepseek-ai/dsh-tool-fs-search config[sampleOverCapGlobResults]
规则备注 · 替换实现 tool-fs-search;该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
改写系统提示词、模型调用、会话持久化或工具行会改变 Agent 的行为与数据去向。
修复建议在 README 中说明覆盖了哪些行及原因,并尽量只重述必要的配置键。
HT-PERMISSION-002覆盖敏感宿主能力
置信度 中L3 · DSH 权限语义
eval/cordis.yml:122GitHub
122override: id=commands name=@deepseek-ai/dsh-commands
规则备注 · 替换实现 commands;该配置随包分发但未被 dsh.bundle 引用,只有用户手动应用时才生效
改写系统提示词、模型调用、会话持久化或工具行会改变 Agent 的行为与数据去向。
修复建议在 README 中说明覆盖了哪些行及原因,并尽量只重述必要的配置键。
低等级发现 4 项 · 计入结论但不改变状态展开
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/prepare.mjs:7GitHub
7spawnSync
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/prepare.mjs:7GitHub
7node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/smoke-package.mjs:11GitHub
11spawnSync
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/smoke-package.mjs:11GitHub
11node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
低置信度命中 5 项 · 不计入结论展开
HT-INSTALL-001安装阶段执行高风险生命周期脚本
置信度 低L1 · 供应链
package.json:114GitHub
114"install": "docs/omdsh-evidence/install.md"
模型研判占位/示例

该字段是 dshWorkshop.evidence.install 指向的文档路径说明,并非 npm scripts.install 生命周期钩子,不会被执行。

修复建议移除安装期执行,或提供可复现构建产物并将脚本改为显式命令。
HT-INSTALL-002Git 安装会触发 prepare 构建脚本
置信度 低L1 · 供应链
package.json:208GitHub
208"prepare": "node scripts/prepare.mjs"
规则备注 · 该插件以 npm/tarball 预构建方式分发,prepare 不在用户机器上执行
修复建议发布预构建制品(npm 或 GitHub Release tarball),并记录源码与发布包的一致性证明。
HT-RUNTIME-001动态代码执行
置信度 低L2 · 静态分析
src/eval/report.ts:106GitHub
106eval (
规则备注 · 出现在字符串或注释中
修复建议使用静态模块和受约束的配置解析器,避免执行动态字符串。
HT-EXEC-001直接创建宿主子进程
置信度 低L2 · 静态分析
test/composition.spec.ts:14GitHub
14spawnSync
规则备注 · 位于测试、示例或文档目录
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 低L2 · 静态分析
test/composition.spec.ts:14GitHub
14node:child_process
规则备注 · 位于测试、示例或文档目录
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。

依赖漏洞 · L1

已查询 OSV.dev:pnpm-lock.yaml 中的生产依赖,0 个已知漏洞
开发依赖及其传递链不计入;只覆盖 OSV 收录的公开漏洞;是否可被利用取决于插件如何使用该依赖。

身份与来源

GitHubPerryLink/dsh-auto-review固定 commit252e5b098db2 · 2026-08-21内容摘要sha256:1b0e0734ee216f0dnpmdsh-auto-review@0.5.3 · 6 个版本最近发布2026-08-21 05:52 UTCrepository 字段指向同一仓库发布来源证明无 provenance维护者1发布包 ↔ 源码未比对收录日期2026-08-15

宿主能力

范围,不是结论
Agent 控制浏览器 UI环境变量文件系统Host Bundle外部网络会话数据宿主子进程遥测
能力标签来自源码中的 API 使用模式:插件读文件、访问网络、创建子进程、读取凭据都会被标出。很多能力是功能所需;有没有问题看上面的证据。

检测覆盖

源码获取已完成
manifest 解析已完成
bundle 配置已完成
依赖锁定有锁文件
已知漏洞查询已完成
来源身份已完成
发布包 ↔ 源码比对未比对
模型研判已完成
隔离动态运行未执行
人工复核未执行
2026-08-21 13:16 UTC存在风险
HT-DSH-0.2.2 · 252e5b0
2026-08-21 13:16 UTC存在风险
HT-DSH-0.2.2 · 252e5b0
策略升级到 HT-DSH-0.2.2
2026-08-21 11:19 UTC存在风险
HT-DSH-0.2.1 · 252e5b0
策略升级到 HT-DSH-0.2.1
2026-08-21 10:47 UTC存在风险
HT-DSH-0.2.0 · 252e5b0
首次扫描

徽章

贴进 README,点击回到本页
Harness Trust: 存在风险
[![Harness Trust](https://dshmod.com/badge/dsh-auto-review.svg)](https://dshmod.com/plugins/perrylink-dsh-auto-review)
API 文档
徽章文案只有风险状态与策略版本,状态变化时自动更新。

已知限制与申诉

作者或用户认为某项发现不成立?提交申诉,我们在 72 小时内复核并公开处理记录。