安装验证:生态插件:`dsh plugin add` 装得上,但未声明 dsh.bundle、不挂载任何插件能力——L1-L5 插件安装验证阶梯不作评级依据;安全扫描照常执行。安装验证详情 →
功能介绍AI
DSH 插件,用于桥接 Claude Code、Codex、Marvis 等智能体,并提供 Ghidra 逆向工程桥接。
- 为 Claude Code、Codex、Marvis 提供智能体桥接
- 内置 Ghidra 逆向工程桥接
- 以 DSH 插件形式分发,接入 DeepSeek Harness
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:zp2921060653/dsh-plugins安装方式: GitHub · 运行验证未定论 (L5 unknown)
验证与兼容性○ 生态插件
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
未采集到插件清单 —— 无法得知作者声明的版本范围。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 | dsh 0.2.1-alpha.4 | dsh 0.2.1-alpha.2 |
|---|---|---|---|
| 8a771d | · | · | · |
| 707b00 | ○ | ○ | ○ |
8a771dlocal2026-10-14
生态插件:`dsh plugin add` 装得上,但未声明 dsh.bundle、不挂载任何插件能力——等级位显示 L5 · 生态插件。
707b00github○ 生态插件 32026-10-19
https://github.com/zp2921060653/dsh-plugins
○dsh 0.2.1-rc.2当前2026-10-19生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/zp2921060653/dsh-plugins(版本未标注)
ID: dsh-plugins-151@707b00@dsh0.2.1-rc.2 · 档位: l4-sandbox
签发:2026-10-19 · 有效至:2026-10-26
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.2.1-alpha.42026-10-18生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • 被测插件工件: github · https://github.com/zp2921060653/dsh-plugins(版本未标注)
ID: dsh-plugins-151@707b00@dsh0.2.1-alpha.4 · 档位: l3-fullscan
签发:2026-10-18 · 有效至:2026-10-25
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.2.1-alpha.22026-10-14生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • 被测插件工件: github · https://github.com/zp2921060653/dsh-plugins(版本未标注)
ID: dsh-plugins-151@707b00@dsh0.2.1-alpha.2 · 档位: l4-sandbox
签发:2026-10-14 · 有效至:2026-10-21
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-plugins-151/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 高,按「取更严者」→ 总评级 高。
—aae715db7af1git2026-10-21aae715db7af1版本一致clean · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(12 条)
- 严重shellExec · shell
forensics-bridge/lib/adapters/rev.js:5async function exec(t, bin, args, opts) { - 严重shellExec · shell
forensics-bridge/lib/adapters/rev.js:20return exec(t, t.radare2, ['-q', '-c', 'iI', binary], opts) - 严重shellExec · shell
forensics-bridge/lib/adapters/rev.js:27return exec(t, t.radare2, ['-q', '-c', 'aaa; afl', binary], opts) - 严重shellExec · shell
forensics-bridge/lib/adapters/web.js:8async function exec(t, bin, args, opts, envExtra) { - 严重shellExec · shell
forensics-bridge/lib/adapters/web.js:17const r = await exec(t, t.trafilatura, ['-u', url, '--output-format', 'markdown'], opts) - 严重shellExec · shell
forensics-bridge/lib/adapters/web.js:26const r = await exec(t, 'py', args, { ...opts, timeoutMs: opts.timeoutMs || 120000 }) - 警告childProcess · code-exec
agent-bridge/lib/adapters/marvis.js:24child = spawn(exe, args, { windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'] }) - 警告netIp · network
agent-bridge/lib/adapters/marvis.js:82const resp = await fetch('http://127.0.0.1:' + st.port + '/health', { signal: AbortSignal.timeout(5000) }) - 警告childProcess · code-exec
agent-bridge/lib/robust.js:68const r = spawnSync('git', ['config', '--global', '--get', 'http.proxy'], { - 警告childProcess · code-exec
agent-bridge/lib/run.js:8try { spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' }) } catch { /* ignore */ } - 警告childProcess · code-exec
agent-bridge/lib/run.js:32child = spawn(command, cargs, { cwd, windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'], env: env || process.env, ...options }) - 警告childProcess · code-exec
forensics-bridge/lib/adapters/net.js:48const child = spawn(command, cargs, { cwd: opts.cwd, windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'], env: opts.env })
展开 3 条审计发现
- highcmd.exe 转义错误且启用 shell:true,参数中的引号可逃逸执行任意命令
agent-bridge/lib/run.js:15cmd.exe 不把反斜杠加引号视为转义:内嵌的 \" 会结束引号区,随后的 & 或 | 被 cmd.exe 当作命令分隔符;makeSpawnArgs(第 22 行)又以 { shell: true } 执行整行。可达调用方会传入不可信文本:web.js 的 clonePage 把 URL 传给 single-file.cmd/monolith,codex.js 第 26 行把原始提示词作为参数传给 codex(.cmd)。形如 x" & calc.exe & " 的 URL/提示词会以宿主身份(通常是与 tshark/radare2/反编译器相同的 Administrator)执行任意命令。该逻辑在 forensics-bridge/lib/run.js 与 ghidra-bridge/lib/run.js 中重复;detect.js 还可能把裸名 'single-file.cmd' 交给 cmd.exe,而 cmd.exe 会优先在工作目录(可能不可信)中查找。
- mediumradare2 的 -c 命令字符串由 target/count 参数拼接而成
forensics-bridge/lib/adapters/rev.js:33radare2 会把 -c 参数按 ';' 拆分成 r2 命令执行,且 '!' 前缀会调用系统 shell(如 '!calc.exe')。因此 target/count 中只要含 ';' 或 '!',就会以插件权限被当作 r2/shell 命令执行,而不只是一个反汇编地址。只要代理把不可信字符串(来自被分析样本的符号名或地址)传入 r2_disasm 即可触发。
- lowCodex 适配器可用 --full-auto 运行被桥接代理,关闭命令审批
agent-bridge/lib/adapters/codex.js:27提示词被原样作为参数传入(第 26 行),在配置开启时代码执行方不会再请求审批。同一 bundle 从网页或被分析样本中取得的内容可把间接提示注入变为宿主机上的无人值守命令执行。agent-bridge/cordis.patch.yml 的注释还给出为被桥接 Claude 代理设置 claudePermissionMode: bypassPermissions 的示例。默认关闭,故评级为低。
共享的 run.js 用错误转义(\")拼接 cmd.exe 命令行并启用 shell:true,代理传入的 URL/提示词可在 Windows 上注入并执行任意命令。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-11 · 活跃度:稳定
• 仓库创建: 2026-08-31
• 星标: ★ 1 · 复刻: 1
• 健康度: 稳定 — 近 90 天有提交
来源
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
