D

dsh-ppt

github.com/STARDUSTLC666/dsh-ppt

v0.10.0 技能包 写入文件发起网络请求客户端可疑脚本
认证 L1已扫描 ✓健康 B/80周下载 3.3k

DSH 演示文稿插件:生成 HTML、可编辑 PPTX 和工程文件,支持图表、轻量编辑、撤销与质量检查。

该插件尚未翻译,显示作者原文。

dshdeepseek-harnessdsh-pluginpluginskillspptpptxpresentation
发布
2026-10-15

检测报告

有一定能力。命中了若干能力模式,大多是插件正常工作时会用到的。
3需留意3一般18未命中
高关注需留意一般

能力清单

  • 写入文件writes-files需留意22 处命中
    • lib/workbench.js:80mkdirSync(dirname(this.catalogPath), { recursive: true });
    • lib/workbench.js:83appendFileSync(this.catalogPath, JSON.stringify(row) + '\n');
    • …sh-ppt/scripts/deck-advanced.mjs:306try { return commit() } finally { closeSync(fd); rmSync(lock, { force: true }) }
    • …sh-ppt/scripts/deck-advanced.mjs:340mkdirSync(normalized.outputDir, { recursive: true })
    • 看写入位置。写自己的配置目录是正常的,写系统目录不是。
  • 发起网络请求network需留意4 处命中
    • lib/client.js:133const response = await fetch(new URL(ROUTE, document.baseURI), { method: 'POST', credentials: 'same-origin', signal,
    • lib/workbench.js:263async fetch(request) {
    • lib/workbench.js:306host.connection?.fetch?.register({ path: PPT_WORKBENCH_ROUTE, methods: ['POST'], requestBody: 'buffered', fetch: (reques…
    • lib/workbench.d.ts:29fetch(request: Request): Promise<Response>;
    • 看请求发往哪些域名。发往作者自己的后端是常见做法。
  • 客户端可疑脚本client-side-risk需留意1 处命中
    • client.js: postMessage 无 origin 校验
    • 浏览器侧代码能改你看到的界面。确认改动范围符合插件用途。
  • 读取文件reads-files一般24 处命中
    • lib/skill.js:48const text = readFileSync(join(dir, 'SKILL.md'), 'utf8');
    • lib/workbench.js:19return readFileSync(path);
    • lib/workbench.js:49if (!existsSync(this.catalogPath))
    • lib/workbench.js:54for (const line of readFileSync(this.catalogPath, 'utf8').split('\n')) {
    • 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
  • 动态加载模块dynamic-import一般12 处命中
    • lib/execution.js:6enginePromise = import(engineUrl.href).then((module) => module)
    • …sh-ppt/scripts/deck-advanced.mjs:238try { lib = await import('@office-kit/pptx') } catch (error) { fail('图片、图表和品牌导出需要 @office-kit/pptx@0.21.0。插件请重新安装;独立技能请在…
    • …sh-ppt/scripts/deck-advanced.mjs:476const { readRenderReceipt } = await import('./deck-render.mjs')
    • …sh-ppt/scripts/deck-advanced.mjs:487const renderer = await import('./deck-render.mjs')
    • 动态导入本身无害,但会让依赖关系难以静态审阅。
  • 读取环境变量reads-env一般2 处命中
    • lib/config.js:19|| (process.env[PPT_OUTPUT_DIR_ENV] ?? '').trim();
    • lib/workbench.js:45this.catalogPath = options.catalogPath ?? join(process.env.DSH_HOME || join(homedir(), '.dsh'), 'plugins', 'dsh-ppt', 'p…
    • 环境变量里常混有密钥。看它是否把整个 env 都读走。
逐条扫描明细
能力标识关注度命中次数
写入文件writes-files需留意22
发起网络请求network需留意4
客户端可疑脚本client-side-risk需留意1
读取文件reads-files一般24
动态加载模块dynamic-import一般12
读取环境变量reads-env一般2

这份报告的口径

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

依赖安全公告

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

等级依赖包编号摘要
中fflateCVE-2026-45820fflate unzipSync can enter an infinite loop when parsing malformed ZIP64 archives
修复版本:0.4.9, 0.5.4, 0.6.11 详情 →

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

可信度

80 健康分 B 扣分项下方逐条附证据
  • -20隔离环境装不上fail:_modules/@deepseek-ai/dsh/lib/bin.js:236:17) at async runDesktopCli (file:///C:/Users/72881/AppData/Local/Programs/DeepSeek%20Harness/resources/app.asar/dsh/nod

认证等级 L1

  • L0内容完整性✓sha512-w4hcwCtHO2uem/0G… 与本地 tarball 复算一致
  • L1来源✓维护者 stardustlc,仓库 STARDUSTLC666/dsh-ppt(未做仓库审计)
  • L2发行—试装未通过(install-failed)
  • L3生态—含界面但还没有宿主启动记录
  • L4多方独立验证—本站不做第三方独立背书
评分口径与作者信息

从 100 分开始按规则扣减:fail −20 / major −10 / warn −5 / minor −2;star 数、下载量、LLM 输出都不参与评分

维护者
stardustlc
仓库
https://github.com/STARDUSTLC666/dsh-ppt
许可
MIT
最后发布
2026-10-15
周下载
3.3k
star
12

扫描状态:已扫描。能力是事实,不是缺陷; 周下载与 star 只作参考,不参与评分。

认证等级核验的是这个包本身(内容指纹、来源、能否安装、声明是否属实);依赖漏洞是独立标注的,两者正交、不互相掩盖。可信 ≠ 无漏洞,上架 ≠ 推荐。

← 返回全部插件