D

dsh-inbox

github.com/Chance722/dsh-inbox

v0.2.15 其他 可执行外部程序含混淆或编码代码发起网络请求

给 DeepSeek Harness(`dsh`)的**本地收件箱插件**:把随手复制的东西收进一个仓库,需要的时候找得回来——包括**在对话里让助手替你取**。

作者原文(英文)

Personal paste inbox for DeepSeek Harness (dsh): capture, classify, browse and retrieve.

中文简介由 DeepSeek 模型翻译,仅供参考。

dshdsh-plugindeepseek-harnessinboxclipboardvault
分类
other
发布
2026-10-09
版本
v0.2.15

检测报告

关注度高。命中了不少能力模式,其中可能有需要留意的。逐条看下面的清单。
1高关注3需留意4一般16未命中
高关注需留意一般

能力清单

  • 可执行外部程序spawns-processes高关注1 处命中
    • lib/cli.js:8import { spawnSync } from "node:child_process";
    • 看它调用哪些程序。调用本机已有的工具是常见做法。
  • 含混淆或编码代码obfuscated-code需留意221 处命中
    • lib/cli.js:28return `dsh-inbox init \u2014\u2014 \u628A inbox \u88C5\u8FDB\u4E00\u4E2A dsh profile\uFF0C\u5E76\u8BA9\u52A9\u624B\u770…
    • lib/cli.js:34--profile <\u540D\u5B57> \u88C5\u8FDB\u54EA\u4E2A dsh profile\uFF1B\u4E0D\u7ED9\u5C31\u81EA\u5DF1\u6311\uFF1A\u4F18\u514…
    • lib/cli.js:35\u5176\u6B21\u8FD9\u53F0\u673A\u5668\u4E0A\u552F\u4E00\u7684\u90A3\u4E2A\uFF08\u6311\u4E0D\u51FA\u6765\u4F1A\u62A5\u9519…
    • lib/cli.js:36--create-profile profile \u4E0D\u5B58\u5728\u65F6\u7528 dsh \u81EA\u5E26\u7684 web \u6A21\u677F\u5EFA\u4E00\u4E2A\uFF08\…
    • 混淆本身不是恶意,但公开源码里出现大段混淆值得问一句为什么。
  • 发起网络请求network需留意27 处命中
    • lib/client.js:1474const response = await fetch(`${INBOX_API_PREFIX}/${INBOX_ENDPOINT_LIST}`, {
    • lib/client.js:1527const response = await fetch(`${INBOX_API_PREFIX}/${INBOX_ENDPOINT_DETAIL}`, {
    • lib/client.js:2448const response = await fetch(`${INBOX_API_PREFIX}/${endpoint}`, {
    • lib/index.js:270result = await web.fetch({ url: filed.url }, AbortSignal.timeout(FETCH_TIMEOUT_MS));
    • 看请求发往哪些域名。发往作者自己的后端是常见做法。
  • 写入文件writes-files需留意10 处命中
    • lib/cli.js:188if (original.length > 0) writeFileSync(`${settingsPath}.bak-${String(Date.now())}`, original, "utf8");
    • lib/cli.js:189writeFileSync(settingsPath, next, "utf8");
    • lib/cli.js:200mkdirSync(dirname(settingsPath), { recursive: true });
    • lib/cli.js:315mkdirSync(dirname(presetDir), { recursive: true });
    • 看写入位置。写自己的配置目录是正常的,写系统目录不是。
  • 接触凭据或密钥credentials一般494 处命中
    • lib/client.js:660var INBOX_ENDPOINT_SECRET = "secret";
    • lib/client.js:731"heading.credential": "\u5BC6\u94A5 / \u8D26\u5BC6",
    • lib/client.js:746"category.secret": "\u5BC6\u94A5/\u8D26\u5BC6",
    • lib/client.js:818// Settings: credentials and remote.
    • 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
  • 读取文件reads-files一般15 处命中
    • lib/cli.js:87entries = readdirSync(root, { withFileTypes: true }).filter((entry) => entry.isDirectory() && !entry.name.startsWith("."…
    • lib/cli.js:91return entries.filter((name) => existsSync(join(root, name, "package.json"))).sort();
    • lib/cli.js:152if (existsSync(join(standard, "agent.cordis.yml"))) return standard;
    • lib/cli.js:185const original = existsSync(settingsPath) ? readFileSync(settingsPath, "utf8") : "";
    • 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
  • 动态加载模块dynamic-import一般6 处命中
    • lib/index.js:1944await vault.import(remote);
    • lib/index.js:3414async import(item) {
    • lib/types/host/vault/spec.d.ts:267items: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, {
    • lib/types/host/vault/spec.d.ts:289attachments: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, {
    • 动态导入本身无害,但会让依赖关系难以静态审阅。
  • 读取环境变量reads-env一般1 处命中
    • lib/cli.js:129const configured = process.env.DSH_HOME;
    • 环境变量里常混有密钥。看它是否把整个 env 都读走。
逐条扫描明细
能力标识关注度命中次数
可执行外部程序spawns-processes高关注1
含混淆或编码代码obfuscated-code需留意221
发起网络请求network需留意27
写入文件writes-files需留意10
接触凭据或密钥credentials一般494
读取文件reads-files一般15
动态加载模块dynamic-import一般6
读取环境变量reads-env一般1

这份报告的口径

扫描读的是包里的源码,全程不执行第三方代码。 本次读了 48 个文件,扫描于 2026-10-14。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。

依赖安全公告

这个插件声明的依赖中,有 1 条已公开的安全公告 (最高等级:低):

等级依赖包编号摘要
低zodCVE-2023-4316Zod denial of service vulnerability
修复版本:3.22.3 详情 →

查询的是依赖声明范围的下界(如 ^4.2.0 查 4.2.0), 不是实际安装到的版本。真正装的时候如果解析到了修复版本,就不受影响—— 所以这是「可能受影响」,不是「这个插件有漏洞」。数据来自 OSV.dev。

← 返回全部插件