可信 — 风险评分 5/100
上次扫描:2 天前 重新扫描
5 /100
soul-in-sapphire
Notion LTM + continuity - 持久化记忆、状态追踪、身份连续性管理
这是一个合法的 Notion API 集成工具,用于持久化记忆、状态追踪和身份连续性管理。代码结构清晰,未发现恶意行为、影子功能或凭证收割。唯一轻微瑕疵是 NOTIONCTL_PATH 可覆盖路径,但这是有意的设计权衡。
技能名称soul-in-sapphire
分析耗时60.7s
引擎pi
可以安装
可安全使用。建议确保 notionctl.mjs 来自可信来源,并限制 NOTIONCTL_PATH 的写入权限以防止路径劫持。

安全发现 3 项

严重性 安全发现 位置
低危
NOTIONCTL_PATH 允许路径覆盖
环境变量 NOTIONCTL_PATH 可指向任意 notionctl.mjs 脚本路径。攻击者若能控制此环境变量,可能执行恶意脚本。
const explicit = process.env.NOTIONCTL_PATH ? expandHome(process.env.NOTIONCTL_PATH) : null;
→ 在生产环境中锁定 NOTIONCTL_PATH 或使用可信路径白名单
scripts/notionctl_bridge.js:17
提示
依赖外部 skill notion-api-automation
核心 API 调用通过外部脚本 notionctl.mjs 实现,非直接 HTTP 请求
const p = path.resolve(here, '..', '..', 'notion-api-automation', 'scripts', 'notionctl.mjs');
→ 确保 notion-api-automation skill 同样安全可信
scripts/notionctl_bridge.js:19
提示
配置文件存储数据库元数据
~/.config/soul-in-sapphire/config.json 存储 Notion 数据库 ID 和 data_source_id,无敏感凭证
fs.writeFileSync(args.outPath, JSON.stringify(cfg, null, 2) + '\n', 'utf-8');
→ 配置文件权限建议设置为 600
scripts/setup_ltm.js:195
资源类型声明权限推断权限状态证据
文件系统 WRITE WRITE ✓ 一致 SKILL.md:memory/*.json, scripts/emostate_tick.js:~/.config/soul-in-sapphire/
网络访问 WRITE WRITE ✓ 一致 SKILL.md:Notion API, scripts/notionctl_bridge.js:runApi()
环境变量 READ READ ✓ 一致 SKILL.md:NOTION_API_KEY, scripts/ltm_common.js:process.env.NOTIONCTL_PATH
命令执行 WRITE WRITE ✓ 一致 scripts/ltm_common.js:execFileSync('node', args)
1 项发现
🔗
中危 外部 URL 外部 URL
https://www.notion.so/my-integrations
README.md:159

目录结构

24 文件 · 86.6 KB · 2543 行
JavaScript 16f · 1773L Markdown 2f · 706L JSON 6f · 64L
├─ 📁 scripts
│ ├─ 📜 bootstrap_config.js JavaScript 42L · 1.5 KB
│ ├─ 📜 conflict_track.js JavaScript 80L · 2.5 KB
│ ├─ 📜 continuity_check.js JavaScript 136L · 4.7 KB
│ ├─ 📜 emostate_config.js JavaScript 26L · 803 B
│ ├─ 📜 emostate_notion.js JavaScript 92L · 3.5 KB
│ ├─ 📜 emostate_tick.js JavaScript 458L · 13.6 KB
│ ├─ 📜 identity_diff.js JavaScript 90L · 3.2 KB
│ ├─ 📋 input.json JSON 10L · 1.6 KB
│ ├─ 📜 journal_patch_schema.js JavaScript 40L · 1.4 KB
│ ├─ 📜 journal_write.js JavaScript 117L · 4.0 KB
│ ├─ 📜 ltm_common.js JavaScript 103L · 3.4 KB
│ ├─ 📜 ltm_search.js JavaScript 65L · 2.0 KB
│ ├─ 📜 ltm_write.js JavaScript 39L · 1.6 KB
│ ├─ 📜 notionctl_bridge.js JavaScript 141L · 4.6 KB
│ ├─ 📜 setup_ltm.js JavaScript 243L · 8.8 KB
│ ├─ 📜 state_recall.js JavaScript 51L · 1.7 KB
│ └─ 📜 subagent_spawn_plan.js JavaScript 50L · 1.8 KB
├─ 📁 state
│ ├─ 📋 subagent-models.json JSON 17L · 300 B
│ └─ 📋 subagent-models.template.json JSON 17L · 275 B
├─ 📋 _meta.json JSON 5L · 136 B
├─ 📋 package-lock.json JSON 10L · 147 B
├─ 📋 package.json JSON 5L · 72 B
├─ 📝 README.md Markdown 295L · 9.4 KB
└─ 📝 SKILL.md Markdown 411L · 15.6 KB

依赖分析 1 项

包名版本来源已知漏洞备注
notion-api-automation N/A (外部 skill) 依赖技能 核心功能依赖 notionctl.mjs,通过子进程调用

安全亮点

✓ 代码结构清晰,无混淆或隐藏逻辑
✓ 错误处理完善,有清晰的失败信息
✓ 所有 API 操作通过子进程执行,无法直接访问敏感凭证
✓ 未发现凭证收割、远程执行或数据外泄行为
✓ 文档与实际代码行为一致
✓ 本地分析工具(continuity_check.js, identity_diff.js, conflict_track.js)为纯本地计算,不涉及网络