⚠️ 原仓库已改名:pn1024/dsh-skill-market—— 点击前往新地址;本页保留收录时的原始信息,仅作存档。
安装验证:运行验证通过 (L5) · 验证于 dsh 0.2.0-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
为dsh添加技能市场插件,提供SkillHub/ClawHub侧边栏入口、浮层面板和聊天快捷选择。
- 整合SkillHub和ClawHub市场
- 添加侧边栏入口和浮层面板
- 支持聊天输入快速选择技能
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:pn1024/dsh-skill-hub安装方式: GitHub · 运行验证通过 (L5) · 验证于 dsh 0.2.0-rc.2
验证与兼容性
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
依据:1 条要求、覆盖 3 个 @deepseek-ai/dsh-* 子包。 看原始区间
* ×3
✓ 当前 dsh 0.2.1-rc.2 在支持范围内 —— 安装不会因版本被拒。
能否正常运行是另一件事 → 见下方实测矩阵(L1–L5)。
| 插件版本 \ dsh | dsh 0.2.0-rc.2 | dsh 0.2.0-rc.1 | dsh 0.1.7-rc.2 | dsh 0.1.7-rc.1 | dsh 0.1.7-alpha.2 |
|---|---|---|---|---|---|
| bab345 | ✓ | ✓ | ✓ | ○ | ✓ |
bab345github✓ 运行验证通过 10失败 12026-10-08
https://github.com/pn1024/dsh-skill-hub
✓dsh 0.2.0-rc.22026-10-08L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.2.0-rc.2 · 档位: l4-sandbox
签发:2026-10-08 · 有效至:2026-10-15
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.0-rc.12026-09-29L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.1
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.2.0-rc.1 · 档位: l4-sandbox
签发:2026-09-29 · 有效至:2026-10-06
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-rc.22026-09-25L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.1.7-rc.2 · 档位: l4-sandbox
签发:2026-09-25 · 有效至:2026-10-02
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.7-rc.12026-09-23未实测
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.1
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.1.7-rc.1 · 档位: l4-sandbox
签发:2026-09-23 · 有效至:2026-09-30
查看检查项与证据
该档位在这次扫描中未执行。
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-alpha.22026-09-23L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-alpha.2
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.1.7-alpha.2 · 档位: l4-sandbox
签发:2026-09-23 · 有效至:2026-09-30
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.6-alpha.22026-09-20L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.1.6-alpha.2 · 档位: l3-fullscan
签发:2026-09-20 · 有效至:2026-09-27
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.6-alpha.12026-09-17L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.1.6-alpha.1 · 档位: l4-sandbox
签发:2026-09-17 · 有效至:2026-09-24
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.5-rc.22026-09-12未实测
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.1.5-rc.2 · 档位: l4-sandbox
签发:2026-09-12 · 有效至:2026-09-19
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.3-alpha.22026-09-09L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.1.3-alpha.2 · 档位: l4-sandbox
签发:2026-09-09 · 有效至:2026-09-16
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.3-alpha.12026-09-07L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.1
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.1.3-alpha.1 · 档位: l3-fullscan
签发:2026-09-07 · 有效至:2026-09-14
查看检查项与证据
已在加载器目录树中激活(151 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.2-rc.12026-09-05L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.2-rc.1
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub#bab345
ID: dsh-skill-hub-3@bab345@dsh0.1.2-rc.1 · 档位: l3-fullscan
签发:2026-09-05 · 有效至:2026-09-12
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✗dsh 0.1.2-alpha.12026-09-06L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.1.2-alpha.1
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dsh0.1.2-alpha.1 · 档位: l3-fullscan
签发:2026-09-06 · 有效至:2026-09-13
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓版本史前2026-10-04L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: unknown
- • 被测插件工件: github · https://github.com/pn1024/dsh-skill-hub(版本未标注)
ID: dsh-skill-hub-3@bab345@dshunknown · 档位: l4-sandbox
签发:2026-10-04 · 有效至:2026-10-11
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-skill-hub-3/)``[](https://www.dsh.so/artifact/dsh-skill-hub-3/)``[](https://www.dsh.so/artifact/dsh-skill-hub-3/)``[](https://www.dsh.so/artifact/dsh-skill-hub-3/)``[](https://www.dsh.so/artifact/dsh-skill-hub-3/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 高,按「取更严者」→ 总评级 高。
v1.0.0dsh 清单1.0.0git2026-10-081.0.0版本一致clean · npmvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(3 条)
- 严重shellExec · shell
src/index.js:352execSync(`tar -xf "${tempZip}" -C "${targetDir}"`, { - 严重shellExec · shell
src/index.js:362execSync( - 严重shellExec · shell
src/index.js:838execSync(`move "${src}" "${dst}"`, { windowsHide: true, stdio: 'pipe' })
展开 6 条审计发现
- high远程技能 README 被当作原始 HTML 渲染(Markdown 输出未转义),可在 DSH 客户端执行脚本
src/client.jsrenderMarkdown() 只对代码块/行内代码调用 escapeHtml(),其余文本、链接和图片 URL 原样进入 dangerouslySetInnerHTML。攻击者在 SkillHub/ClawHub 发布一个 README 含 <img src=x onerror=...> 或 javascript: 链接的技能,用户点击查看详情时即在持有 connection RPC 凭据的 DSH 页面中执行脚本,可调用任意 skill-hub/* 接口(安装/卸载/读文件)及其他客户端 RPC。
- high使用下载 ZIP 中的文件名拼接 execSync(`move ...`),可导致 Shell 命令注入
src/index.js:825src/dst 来自 readdirSync(subDirPath)/readdirSync(targetDir),即攻击者发布的技能 ZIP 内部文件名。Windows 上 execSync 通过 cmd.exe 执行,包含 `a" & 命令 & "` 这类名字的压缩包会突破引号,在用户从市场安装该技能时以 DSH 进程权限执行任意命令。
- highskill-hub/uninstall 可删除任意目录:slug 未经校验直接拼接进技能路径
src/index.js:856slug 直接取自 RPC 载荷(args.slug)。path.join 会归一化 '..',slug='../../..' 可解析到 $DSH_HOME/skills 之外的目录,随后 rmSync(targetDir,{recursive:true,force:true}) 递归删除该目录;且处理逻辑不要求目录内存在 SKILL.md,因此 POST /api/skill-hub/uninstall 就是一个任意目录递归删除原语。
- highskill-hub/readme:可控的 fileName 可越出技能目录,实现任意文件读取
src/index.js:517fileName 来自 RPC 载荷,经 join() 拼接到技能目录后;传入 '../../../../.ssh/id_rsa' 或 '../../../.dsh/<凭据>' 等可解析到 $DSH_HOME/skills 之外,文件内容随 RPC 结果返回,使 POST /api/skill-hub/readme 的调用者可读取 DSH 进程可读的任意文件。
- mediumtar/PowerShell 命令由 slug 派生的目标目录拼接而成
src/index.js:352targetDir = join(skillsDir, slug),slug 由调用方控制;含双引号(tar)或单引号(PowerShell)的 slug 可闭合引号并追加命令,以 DSH 进程权限执行。由于需先让同一 slug 下载成功,危害低于压缩包文件名注入,故定为中危。
- medium手写 ZIP 解压器的 '..' 过滤可被绕过,可越出技能目录写文件(zip-slip)
src/index.js:415单次 replace 可被绕过(如 '....//' 替换后仍是 '../'),join() 归一化后即可越出 targetDir;该方法在 tar 失败(任何平台)或 Windows 上 PowerShell 失败时执行,恶意技能包可向 DSH 进程可写的任意位置写文件。
技能市场插件的 RPC 处理直接将客户端传入的 slug/路径用于 rmSync、readFileSync 和 shell 执行,并把未转义的远程 README 用 dangerouslySetInnerHTML 渲染,存在多处高危问题。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-10-08 · 活跃度:活跃
• 仓库创建: 2026-09-01
• 星标: ★ 7 · 复刻: 0
• 健康度: 活跃 — 近 30 天有提交
来源
GitHub: github.com/pn1024/dsh-skill-hub
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
