dsh-plugin-studio
v0.3.1
市场与管理
可执行外部程序含混淆或编码代码发起网络请求
DSH 插件管理器:官方/社区分组插件列表,带本地化描述,一键启用/禁用和卸载,还有 GitHub dsh-plugin 市场标签页。
作者原文(英文)
DSH plugin manager: official/community grouped plugin list with localized descriptions, one-click enable/disable and uninstall, plus a GitHub dsh-plugin market tab.
中文简介由 DeepSeek 模型翻译,仅供参考。
deepseek-harnessdsh-pluginplugin-managerplugin-managementweb-uitypescriptcordis
检测报告
关注度高。命中了不少能力模式,其中可能有需要留意的。逐条看下面的清单。
1高关注3需留意3一般17未命中
高关注需留意一般
能力清单
- 可执行外部程序
spawns-processes高关注1 处命中lib/index.js:245import { execFile } from "node:child_process";- 看它调用哪些程序。调用本机已有的工具是常见做法。
- 含混淆或编码代码
obfuscated-code需留意122 处命中lib/client.js:50zh: "DSH \u5171\u4EAB\u6838\u5FC3\uFF1A\u6BCF\u4E2A profile \u7684\u7B2C\u4E00\u4E2A\u8865\u4E01\u5C42\uFF0C\u5411\u7A7A…lib/client.js:54zh: "DSH \u6D4F\u89C8\u5668\u7AEF bundle\uFF1Aweb \u8865\u4E01\u5C42 + \u8FD0\u884C\u65F6\u80F6\u6C34\u63D2\u4EF6\uFF08\…lib/client.js:58zh: "\u63D2\u4EF6\u63A7\u5236\u53F0\uFF08\u7B2C\u4E09\u65B9\uFF09\uFF1A\u4E00\u952E\u542F\u7528/\u505C\u7528\u63D2\u4EF6…lib/client.js:62zh: "\u5BF9\u8BDD\u5B8C\u6210\u65F6\u64AD\u653E\u63D0\u793A\u97F3\u5E76\u53D1\u9001 Windows \u901A\u77E5\uFF1BWebUI \u94…- 混淆本身不是恶意,但公开源码里出现大段混淆值得问一句为什么。
- 发起网络请求
network需留意13 处命中lib/client.js:1307const list = async () => jsonOrThrow(await globalThis.fetch("/dsh-plugin-studio/list"));lib/client.js:1308const toggle = async (body) => jsonOrThrow(await globalThis.fetch("/dsh-plugin-studio/toggle", {lib/client.js:1313const uninstall = async (packageName) => jsonOrThrow(await globalThis.fetch("/dsh-plugin-studio/uninstall", {lib/client.js:1318const group = async (moduleName, groupName) => jsonOrThrow(await globalThis.fetch("/dsh-plugin-studio/group", {- 看请求发往哪些域名。发往作者自己的后端是常见做法。
- 写入文件
writes-files需留意2 处命中lib/index.js:261await writeFile(tmp, content, "utf8");lib/index.js:262await rename(tmp, file);- 看写入位置。写自己的配置目录是正常的,写系统目录不是。
- 接触凭据或密钥
credentials一般5 处命中lib/client.js:97"@deepseek-ai/dsh-credentials-local": {lib/client.js:98zh: "\u51ED\u636E\u5B58\u50A8\uFF1A\u73AF\u5883\u53D8\u91CF\u5F15\u7528\u7684\u6258\u7BA1\u5BC6\u94A5\u6587\u6863\uFF08.…lib/client.js:99en: "Credential store: managed secret document referenced by environment variables, resolved per request."lib/client.js:251en: "Models settings and shared product-onboarding dialogs over existing settings and credential joins"- 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
- 读取文件
reads-files一般3 处命中lib/index.js:288return JSON.parse(await readFile(join(profileDir, "package.json"), "utf8"));lib/index.js:300await readFile(join(nodeModules, packageName, "package.json"), "utf8")lib/index.js:344raw = await readFile(file, "utf8");- 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
- 读取环境变量
reads-env一般1 处命中lib/index.js:266const file = isWin ? process.env.ComSpec ?? "cmd.exe" : "pnpm";- 环境变量里常混有密钥。看它是否把整个 env 都读走。
逐条扫描明细
| 能力 | 标识 | 关注度 | 命中次数 |
|---|---|---|---|
| 可执行外部程序 | spawns-processes | 高关注 | 1 |
| 含混淆或编码代码 | obfuscated-code | 需留意 | 122 |
| 发起网络请求 | network | 需留意 | 13 |
| 写入文件 | writes-files | 需留意 | 2 |
| 接触凭据或密钥 | credentials | 一般 | 5 |
| 读取文件 | reads-files | 一般 | 3 |
| 读取环境变量 | reads-env | 一般 | 1 |
这份报告的口径
扫描读的是包里的源码,全程不执行第三方代码。 本次读了 24 个文件,扫描于 2026-10-14。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。
依赖安全公告
已查询这个插件声明的全部依赖,没有匹配到已公开的安全公告。(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。)