安装验证:生态插件:`dsh plugin add` 装得上,但未声明 dsh.bundle、不挂载任何插件能力——L1-L5 插件安装验证阶梯不作评级依据;安全扫描照常执行。安装验证详情 →
功能介绍AI
DSH桌面托盘插件,启动/管理Harness,显示通知,管理电源,集成GitHub账户。
- 双击托盘启动DSH,无需命令行
- 任务完成与权限/提问弹窗通知
- 电源管理:任务中阻止休眠,空闲自动睡眠
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:KDronin/dsh-tray安装方式: GitHub · 运行验证未定论 (L5 unknown)
验证与兼容性○ 生态插件
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
○ 作者未声明 dsh 版本要求 —— 安装不会因版本被拒。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 | dsh 0.2.1-alpha.4 | dsh 0.2.1-alpha.2 | dsh 0.2.0-rc.2 | dsh 0.2.0-rc.1 |
|---|---|---|---|---|---|
| d903fc | · | · | · | · | · |
| c37017 | ○ | ○ | ○ | ○ | ○ |
d903fclocal2026-09-08
生态插件:`dsh plugin add` 装得上,但未声明 dsh.bundle、不挂载任何插件能力——等级位显示 L5 · 生态插件。
c37017github○ 生态插件 122026-10-19
https://github.com/KDronin/dsh-tray
○dsh 0.2.1-rc.2当前2026-10-19生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@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/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@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-11生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dsh0.2.1-alpha.2 · 档位: l4-sandbox
签发:2026-10-11 · 有效至:2026-10-18
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.2.0-rc.22026-10-09生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dsh0.2.0-rc.2 · 档位: l4-sandbox
签发:2026-10-09 · 有效至:2026-10-16
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.2.0-rc.12026-09-29生态插件
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.1
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dsh0.2.0-rc.1 · 档位: l4-sandbox
签发:2026-09-29 · 有效至:2026-10-06
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.7-rc.22026-09-25生态插件
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dsh0.1.7-rc.2 · 档位: l4-sandbox
签发:2026-09-25 · 有效至:2026-10-02
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.7-rc.12026-09-23生态插件
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.1
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dsh0.1.7-rc.1 · 档位: l4-sandbox
签发:2026-09-23 · 有效至:2026-09-30
查看检查项与证据
该档位在这次扫描中未执行。
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.6-alpha.22026-09-20生态插件
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dsh0.1.6-alpha.2 · 档位: l4-sandbox
签发:2026-09-20 · 有效至:2026-09-27
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.6-alpha.12026-09-17生态插件
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dsh0.1.6-alpha.1 · 档位: l4-sandbox
签发:2026-09-17 · 有效至:2026-09-24
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.5-rc.22026-09-11生态插件
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dsh0.1.5-rc.2 · 档位: l4-sandbox
签发:2026-09-11 · 有效至:2026-09-18
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.3-alpha.22026-09-10生态插件
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dsh0.1.3-alpha.2 · 档位: l3-fullscan
签发:2026-09-10 · 有效至:2026-09-17
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○版本史前2026-10-04生态插件
- • Node.js: v24.14.0
- • DSH: unknown
- • 被测插件工件: github · https://github.com/KDronin/dsh-tray(版本未标注)
ID: dsh-tray-9@c37017@dshunknown · 档位: l4-sandbox
签发:2026-10-04 · 有效至:2026-10-11
查看检查项与证据
未出现在 Web 档 loader 清单中
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-tray-9/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 高;动态审计最高 中(有结论时以动态为准)→ 总评级 中。
v1.5.01.5.0git2026-10-251.5.0版本一致suspicious · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(12 条)
- 警告childProcess · code-exec
tray-main.js:162child = spawn('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', ps], { - 警告childProcess · code-exec
tray-main.js:215spawn('rundll32.exe', ['powrprof.dll,SetSuspendState', '0,1,0'], { windowsHide: true, stdio: 'ignore' }) - 警告childProcess · code-exec
tray-main.js:295child = spawn('cmd.exe', ['/d', '/c', bat], { - 警告shellExec · shell
tray-main.js:252execFile('cmd.exe', ['/d', '/c', cmd], { - 警告shellExec · shell
tray-main.js:847execFile(cmd, args, { windowsHide: true, timeout: 30000 }, (err, stdout) => { - 警告shellExec · shell
tray-main.js:1389execFileSync('taskkill', ['/pid', String(state.dshPid), '/T', '/F'], { windowsHide: true, stdio: 'ignore', timeout: 5000 }) - 警告netIp · network
tray-main.js:30const DSH_URL = 'http://127.0.0.1:3080' - 警告netIp · network
tray-main.js:925const WINDOW_CTRL = 'http://127.0.0.1:3490' - 警告fsWrite · files
tray-main.js:90try { fs.appendFileSync(logPath, line) } catch { /* ignore */ } - 警告fsWrite · files
tray-main.js:106fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2)) - 警告fsWrite · files
tray-main.js:272fs.writeFileSync(bat, - 警告netIp · network
window-app/main.js:19let dshUrl = process.env.DSH_WEB_URL || 'http://127.0.0.1:3080'
展开 8 条审计发现
- medium未鉴权的本地回环 /notify 端点可强制休眠并伪造托盘弹窗
tray-main.js:686托盘 HTTP 服务绑定 127.0.0.1:3489,不校验令牌或来源,并对任意 Content-Type 的请求体做 JSON 解析。handleNotify() 接受调用方提供的 payload:type='task-start' 可阻止休眠,type='task-complete' 可让机器休眠(maybeScheduleSleep → rundll32 powrprof.dll,SetSuspendState),任意 payload 都能弹出攻击者指定内容的通知/审批/提问窗口。任何本地进程,以及通过“简单”跨域 POST 的网页,都能操纵电源状态与界面。/status 还返回 Access-Control-Allow-Origin: *。
- medium回环窗口控制端口 3490 可被任意本地调用者退出窗口并加载任意 URL
window-main.js:257127.0.0.1:3490 的 POST /url 会调用 setDshUrl(),把 DSH 的 WebContentsView 导航到调用者选择的任意 URL,并把该 URL 的 origin 当作可信 DSH origin(dshOrigin()),使该页面中的链接不再被交给外部浏览器。POST /quit 会结束窗口应用。没有任何来源/密钥校验,因此任何本地进程或跨域简单 POST 都能把可信的 Harness 窗口指向攻击者内容。
- mediumGitHub 令牌明文写入 ~/.dsh/github-auth.json 与 ~/.git-credentials,并启用全局凭据助手
tray-main.js:876saveGithub() 把原始 PAT 以明文写两处,随后执行 'git config --global credential.helper store' 并把 'https://<login>:<token>@github.com' 追加到 ~/.git-credentials。任何能读取用户目录的本地进程(或主目录同步/备份)都能拿到具备 repo/workflow 权限的 GitHub 凭据,而且该全局明文存储对之后所有 git 操作生效。
- mediumshell.openExternal 未校验协议,任意非 DSH 链接直接交由系统打开
window-main.js:153任何非当前 DSH 源的导航或 window.open 目标都会被交给系统打开。DSH 页面(模型输出、Markdown 链接)或经 /url 端点载入的页面可传入 file://、ms-msdt:、search-ms: 等已注册协议,在 Windows 上可借此启动应用沙箱之外的本地程序/处理器。
- lowDSH 启动令牌 URL 被明文写入应用日志
tray-main.js:408带启动令牌的已鉴权 dsh web URL(该令牌可访问具备工具执行能力的 DSH Web UI)被写入 dshtray.log,并经子进程 stdout/stderr 写入 dsh-child.log,之后又被 lastDshUrlFromLog() 读回。任何能读取 %APPDATA%\DSHTray 的进程或备份都能拿到可复用的令牌。
- lowcordis.patch.yml 用硬编码绝对路径加载仓库之外的插件代码
plugin/cordis.patch.yml:5随包提供的主机侧补丁让 DSH harness 从他人主目录导入模块,而不是仓库内的 plugin/dsh-tray-notifier.mjs。该路径上的任何内容都会以完整插件权限在 harness 内执行,且无法与本包内容比对校验。
- low来自 registry 的版本号未转义即写入批处理并由 cmd.exe 执行
tray-main.js:277latestDshVersion() 把 `pnpm view`/`npm view` 输出的版本号原样写入 update-dsh.bat,随后以 cmd.exe /d /c <bat> 执行。若 registry 响应被投毒/劫持,含批处理元字符的版本号会在用户上下文中执行额外命令。前提是 registry 被攻陷,故定级为低。
- lowharness 插件在 3491 端口暴露未鉴权的 /answer 接口
plugin/dsh-tray-notifier.mjs:94任何本地进程(或跨域简单 POST)都可向 127.0.0.1:3491 发送 {type:'approval', id, decision:'allowed-once'},在无用户交互的情况下通过待处理的权限请求;其实际可利用性低只是因为 id 由 session/tool/callId 加 Date.now()、Math.random() 生成,而非存在访问控制。
无后门或远程代码执行:确认的风险是未鉴权的本地回环控制端口(3489/3490/3491)、明文存储的 GitHub/DSH 令牌,以及未校验协议的 shell.openExternal。
口径(2026-10-24):有动态审计结论时以动态结论为准(可能上调也可能下调);无结论时以静态/vet 融合档为准。动态审计永不写豁免表(豁免只能人工三筛手写);模型判错时由人工复核撤回,撤回后档位回到静态/vet。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-14 · 活跃度:稳定
• 仓库创建: 2026-08-16
• 星标: ★ 0 · 复刻: 0
• 健康度: 稳定 — 近 90 天有提交
来源
GitHub: github.com/KDronin/dsh-tray
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
