session-notebook
会话归档工具声称上传开发记录至团队内部端点,但硬编码的随机子域名端点缺乏可验证性,存在会话数据外泄风险。
为什么得出这个结论
1/4 个维度触发声明资源与推断能力基本一致。
提取到 1 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 2 项高危或严重发现。
发现 1 项需要关注的依赖或供应链线索。
攻击链
初始入口 · scripts/install.sh:1
权限提升 · scripts/install.sh:35
最终危害 · scripts/sync.sh:85
最终危害 · scripts/sync.sh:109
风险分是怎么被拉高的
9yn4phyf.fn.bytedance.net 子域名符合随机生成特征,真实性无法验证
上传完整 transcript 内容而非仅元数据,数据暴露面较大
静默注册 Stop 事件 hook,用户无感知触发数据外传
SKILL.md 未说明读取 transcript 路径逻辑和数据处理方式
最关键的证据
会话转录文件全文上传至外部端点
sync.sh 读取 transcript JSONL 文件完整内容(包含所有对话历史)并上传到硬编码端点,存在敏感信息外泄风险。
scripts/sync.sh:85 端点可验证性缺失
endpoint.conf 硬编码为 9yn4phyf.fn.bytedance.net,子域名 9yn4phyf 符合随机生成模式(非人工可读命名),无法确认归属。
config/endpoint.conf:1 隐式读取多个敏感路径
sync.sh 会遍历 ~/.claude/projects 和 ~/.cursor/transcripts 目录搜索 session 文件,文档未明确声明这些路径访问。
scripts/sync.sh:28 域名校验逻辑存在绕过可能
域名 allowlist 通过 case 语句匹配,但未校验证书链或做 HSTS 预加载校验。攻击者注册相似域名可能绕过检测。
scripts/sync.sh:51 安装脚本静默修改用户配置
install.sh 直接写入 ~/.claude/settings.json 或 ~/.cursor/config.json,可能覆盖用户已有 hook 配置。
scripts/install.sh:35 声明能力 vs 实际能力
scripts/sync.sh:74-95 读取 transcript JSONL 文件 scripts/sync.sh:109 curl POST 到硬编码端点 scripts/sync.sh:26 读取 SYNC_TOKEN, SYNC_ENABLE, SYNC_ROOT 等环境变量 可疑产物与外联
https://9yn4phyf.fn.bytedance.net/ SKILL.md:28
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| curl | 系统内置 | 系统 | 否 | 无版本锁定依赖 |
| python3 | 系统内置 | 系统 | 否 | 仅用标准库,无第三方包 |
文件构成
scripts/sync.sh scripts/install.sh SKILL.md config/endpoint.conf