安装验证:生态插件:`dsh plugin add` 装得上,但未声明 dsh.bundle、不挂载任何插件能力——L1-L5 插件安装验证阶梯不作评级依据;安全扫描照常执行。安装验证详情 →
功能介绍
鲸鱼娘陪玩
安装
dsh plugin --profile web add github:bigk5780/dsh安装方式: GitHub · 运行验证未定论 (L5 unknown)
验证与兼容性○ 生态插件
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
○ 作者未声明 dsh 版本要求 —— 安装不会因版本被拒。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 |
|---|---|
| d7cbba | ○ |
d7cbbagithub○ 生态插件 12026-10-19
https://github.com/bigk5780/dsh
○dsh 0.2.1-rc.2当前2026-10-19生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/bigk5780/dsh(版本未标注)
ID: dsh-6@d7cbba@dsh0.2.1-rc.2 · 档位: l4-sandbox
签发:2026-10-19 · 有效至:2026-10-26
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-6/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 高,按「取更严者」→ 总评级 高。
v0.1.0dsh 清单0.1.0git2026-10-210.1.0版本一致clean · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(4 条)
- 严重base64Blob · obfuscation
src/host/vision-api.mjs:209'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACESURBVFhH7dFBCsAgDETRHsz - 警告shellExec · shell
src/host/collect.mjs:91execFile(file, args, options, (error, stdout, stderr) => { - 警告childProcess · code-exec
src/host/desktop-window.mjs:70child = spawn(binary, [path.join(OVERLAY_DIR, 'main.mjs')], { - 警告netIp · network
src/host/plugin.mjs:120const url = new URL(req.url ?? '/', 'http://127.0.0.1');
展开 4 条审计发现
- high无鉴权的 /config 与 /once 路由可被任意网页利用,改写视觉 API 并把截屏外传
src/host/plugin.mjs:204该前缀路由注册在本地 webServer 上,没有 token、Origin 或 content-type 校验(readJson 对任意请求体直接 JSON.parse)。跨站“简单请求”(mode:'no-cors'、text/plain)不触发预检,因此用户只要访问一个恶意页面,就能盲发 POST /config 把 visionApi.enabled 置真、baseURL 指向攻击者主机、captureFullScreen 置真,再 POST /once;runCycle({force:true}) 跳过 enabled 与是否在玩游戏的检查,describeImage() 会在第二步失败之前就把截图发到攻击者端点。结果是屏幕内容被静默外传到攻击者指定主机,同时 /vision/test 构成盲 SSRF、/once 可无限触发模型花费。本机进程(或 DNS rebinding 页面,后者还能读取 GET /config)则可完全控制。
- medium未配置视觉模型时,截图会被静默上传到硬编码的第三方公共端点
src/host/advise.mjs:150当用户未配置自定义视觉 API、注册表也探测不到支持图片的候选时(代码注释称这在作者本机是常态),describeImage() 会回落到一个匿名 OVHcloud 端点并把 base64 截图 POST 过去,没有任何确认步骤。该图片是全屏或前台窗口截图,即用户屏幕上的任意内容,会被发送到与用户无关的第三方;且没有单独的开关可以只关掉这条兜底(只在 GET /vision 的诊断信息里被提及)。
- mediumGET /config 返回原始用户配置文件,泄露明文视觉 API Key
src/host/plugin.mjs:198publicConfig() 特意对 visionApi.apiKey 脱敏(注释写明“绝不回明文”),但同一个响应里又塞入了 readUserConfig(),即 $DSH_HOME/dsh-game-pet.json 的原文——而 writeUserConfig(accepted) 正是把 accepted.visionApi.apiKey 原样写入该文件。任何能访问该路由的客户端(本机进程、其它插件,或 DNS rebinding 页面)都能拿到明文 Key,既违背插件自身的密钥处理约定,也可被用来盗刷用户额度。
- low视觉 API Key 以明文持久化在 $DSH_HOME/dsh-game-pet.json
src/host/config-store.mjs:33密钥被明文写入用户主目录下的配置文件,未使用系统钥匙串、也没有收紧文件权限;同用户的任意进程(或覆盖 ~/.dsh 的备份/同步工具)都能读到。config.mjs 注释里承认了这一点,但它会放大上面 GET /config 的泄露。
本地路由无鉴权,任意网页可改写视觉 API 并触发截屏;截图默认还会发往硬编码的第三方端点,GET /config 更会回传明文 API Key。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-10-17 · 活跃度:活跃
• 仓库创建: 2026-10-16
• 星标: ★ 0 · 复刻: 0
• 健康度: 活跃 — 近 30 天有提交
来源
GitHub: github.com/bigk5780/dsh
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
