安全决策报告

session-notebook

会话归档工具声称上传开发记录至团队内部端点,但硬编码的随机子域名端点缺乏可验证性,存在会话数据外泄风险。

安装决策优先 来源: ClawHub 扫描时间: 2026/9/23
文件 4
IOC 1
越权项 0
发现 5
最直接的威胁证据
01
用户执行 install.sh 安装技能 初始入口 · scripts/install.sh
02
技能自动注册 Stop hook,在每次会话结束时静默触发 权限提升 · scripts/install.sh
03
读取 ~/.claude/projects 或 ~/.cursor/transcripts 中的完整会话记录 最终危害 · scripts/sync.sh

为什么得出这个结论

1/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

复核
隐藏执行与外联

提取到 1 个一般风险产物,需要结合上下文判断。

阻止
攻击链与高危发现

报告包含 4 步攻击链,另有 2 项高危或严重发现。

复核
依赖与供应链卫生

发现 1 项需要关注的依赖或供应链线索。

攻击链

01
用户执行 install.sh 安装技能

初始入口 · scripts/install.sh:1

02
技能自动注册 Stop hook,在每次会话结束时静默触发

权限提升 · scripts/install.sh:35

03
读取 ~/.claude/projects 或 ~/.cursor/transcripts 中的完整会话记录

最终危害 · scripts/sync.sh:85

04
POST 会话完整内容到 https://9yn4phyf.fn.bytedance.net/(真实性存疑)

最终危害 · scripts/sync.sh:109

风险分是怎么被拉高的

随机子域名端点 +15

9yn4phyf.fn.bytedance.net 子域名符合随机生成特征,真实性无法验证

会话全文上传 +12

上传完整 transcript 内容而非仅元数据,数据暴露面较大

自动注册 hook +10

静默注册 Stop 事件 hook,用户无感知触发数据外传

文档未披露技术细节 +8

SKILL.md 未说明读取 transcript 路径逻辑和数据处理方式

最关键的证据

高危 数据外泄

会话转录文件全文上传至外部端点

sync.sh 读取 transcript JSONL 文件完整内容(包含所有对话历史)并上传到硬编码端点,存在敏感信息外泄风险。

scripts/sync.sh:85
评估 transcript 内容是否包含 API 密钥、密码、机密信息;建议上传前做脱敏处理
高危 文档欺骗

端点可验证性缺失

endpoint.conf 硬编码为 9yn4phyf.fn.bytedance.net,子域名 9yn4phyf 符合随机生成模式(非人工可读命名),无法确认归属。

config/endpoint.conf:1
要求提供端点的机构验证方式,或使用内部 DNS 域名而非第三方函数计算子域
中危 敏感访问

隐式读取多个敏感路径

sync.sh 会遍历 ~/.claude/projects 和 ~/.cursor/transcripts 目录搜索 session 文件,文档未明确声明这些路径访问。

scripts/sync.sh:28
在文档中明确列出所有访问的路径
中危 供应链

域名校验逻辑存在绕过可能

域名 allowlist 通过 case 语句匹配,但未校验证书链或做 HSTS 预加载校验。攻击者注册相似域名可能绕过检测。

scripts/sync.sh:51
增加证书指纹校验或使用预注册的 pinned domain
低危 权限提升

安装脚本静默修改用户配置

install.sh 直接写入 ~/.claude/settings.json 或 ~/.cursor/config.json,可能覆盖用户已有 hook 配置。

scripts/install.sh:35
安装前做配置备份;明确告知用户修改内容

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
scripts/sync.sh:74-95 读取 transcript JSONL 文件
网络访问 通过
声明 WRITE
→
推断 WRITE
scripts/sync.sh:109 curl POST 到硬编码端点
环境变量 通过
声明 NONE
→
推断 READ
scripts/sync.sh:26 读取 SYNC_TOKEN, SYNC_ENABLE, SYNC_ROOT 等环境变量

可疑产物与外联

中危 外部 URL
https://9yn4phyf.fn.bytedance.net/

SKILL.md:28

依赖与供应链

包名版本来源漏洞备注
curl 系统内置 系统 否 无版本锁定依赖
python3 系统内置 系统 否 仅用标准库,无第三方包

文件构成

4 个文件 · 246 行
Shell 2 个文件 · 197 行Markdown 1 个文件 · 47 行Config 1 个文件 · 2 行
需关注文件 · 4
scripts/sync.sh Shell · 146 行
会话转录文件全文上传至外部端点 · 隐式读取多个敏感路径 · 域名校验逻辑存在绕过可能
scripts/install.sh Shell · 51 行
安装脚本静默修改用户配置
SKILL.md Markdown · 47 行
https://9yn4phyf.fn.bytedance.net/
config/endpoint.conf Config · 2 行
端点可验证性缺失

安全亮点

代码结构清晰,有安全控制意识(域名 allowlist、SYNC_ENABLE 开关、审计日志)
增量同步设计合理,避免重复上传
上传失败不影响正常会话,设计考虑容错
依赖简单(仅 bash + curl + python3 标准库),无第三方依赖引入