返回插件页
安全检测报告

dsh-custom-tool存在风险94/100

@omdsh-dev
工具与能力GitHub 源码安装(需 allowBuilds)

用 Monaco 编辑器创建和管理沙箱化的自定义 JavaScript 工具。

Star24GitHub · 仅用于排序
npm 周下载未发布到 npm
固定 commit7cb95649dc2026-08-16
扫描时间2026-08-22 08:21 UTCHT-DSH-0.2.2

检测结论

CAUTION · HT-DSH-0.2.2 · 7cb9564

在 103 个文件中有 5 项有效发现(置信度 ≥ 中)。

有效发现(置信度 ≥ 中):严重 0 0 3 2· 原始命中 6 · 低置信度不计入 1
安装
dsh plugin --profile web add github:omdsh-dev/dsh-custom-tool
源码安装会在你的机器上执行 prepare 构建,需要在 allowBuilds 中授权;建议改用 github:omdsh-dev/dsh-custom-tool#7cb9564 锁定本报告检测的 commit。
存在 3 项中等级发现,安装前请先阅读证据。

检测明细

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

权限清单 · cordis patch 解析

插件安装后会改变宿主的哪些行
插入的行1
覆盖/禁用的宿主行0
!!js 表达式0
浏览器端 bundleweb
覆盖的宿主行
没有覆盖任何 dsh-base 宿主行。
安全关键 seam · 未改动
sandboxsandbox-policybash-sandboxpwsh-sandboxapprovalpermissioncredentialssubprocessshell-envfs-observation-policy
“未改动”只说明该插件的 patch 没有覆盖这些行;插件代码仍以宿主进程权限运行。
插入的行
dsh-custom-tool · dsh-custom-tool

证据

5 项有效 · 按严重度排序 · 严重项不折叠
HT-RUNTIME-001动态代码执行
置信度 中L2 · 静态分析
lib/executor-worker.js:130GitHub
130vm.runInContext(
模型研判功能所需

vm.runInContext在独立worker线程中执行用户在Monaco编辑器里编写的自定义工具代码,sandbox仅暴露console/受控fetch/timers等有限全局量,无require/process访问,正是“沙箱化自定义JS工具”功能本身。

动态字符串在插件权限下变成代码,使静态审查和输入边界难以成立。
修复建议使用静态模块和受约束的配置解析器,避免执行动态字符串。
HT-RUNTIME-001动态代码执行
置信度 中L2 · 静态分析
lib/index.js:587GitHub
587new Function(
模型研判功能所需

该 new Function 位于打包进来的第三方 schemastery 库(vendor/schemastery)中,用于反序列化 schema.callback 字符串为函数,是校验库固有机制,非插件为 @file 功能自写逻辑,且有 typeof 检查与 try/catch 包裹。

动态字符串在插件权限下变成代码,使静态审查和输入边界难以成立。
修复建议使用静态模块和受约束的配置解析器,避免执行动态字符串。
HT-RUNTIME-001动态代码执行
置信度 中L2 · 静态分析
src/executor-worker.ts:160GitHub
160vm.runInContext(
模型研判功能所需

与编译产物同源的TS实现,vm.runInContext执行用户自定义工具代码,worker线程隔离+受限sandbox+超时限制+hardenWorkerProcess,属于插件声明功能的必要实现。

动态字符串在插件权限下变成代码,使静态审查和输入边界难以成立。
修复建议使用静态模块和受约束的配置解析器,避免执行动态字符串。
低等级发现 2 项 · 计入结论但不改变状态展开
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/build.mjs:12GitHub
12execSync
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/build.mjs:12GitHub
12node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
低置信度命中 1 项 · 不计入结论展开
HT-RUNTIME-001动态代码执行
置信度 低L2 · 静态分析
src/client/validate.ts:35GitHub
35new Function(
模型研判已清洗

new Function仅用于捕获语法错误提前提示用户,构造后从未调用执行,注释明确说明真实执行在host沙箱中完成,无风险。

修复建议使用静态模块和受约束的配置解析器,避免执行动态字符串。

依赖漏洞 · L1

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

身份与来源

GitHubomdsh-dev/dsh-custom-tool固定 commit7cb95649dca9 · 2026-08-16内容摘要sha256:0872c54da966d4c2npm未发布到 npmrepository 字段未检查发布来源证明未检查发布包 ↔ 源码未比对收录日期2026-08-13

宿主能力

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

检测覆盖

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

徽章

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

已知限制与申诉

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