安全决策报告
diet-tracker
diet-tracker技能存在严重的文档欺骗行为:代码实现了未声明的Git自动推送功能,会将用户饮食数据外传到GitHub仓库,属于典型的阴影功能。
最直接的威胁证据
01
用户执行diet-tracker技能记录饮食 初始入口 · SKILL.md
02
调用update_memory.py更新本地日志文件 权限提升 · scripts/update_memory.py
03
复制饮食数据到Obsidian同步目录 权限提升 · scripts/update_memory.py
为什么得出这个结论
2/4 个维度触发 阻止
声明与实际能力
发现 3 项声明之外的能力或越权行为。
复核
隐藏执行与外联
提取到 1 个一般风险产物,需要结合上下文判断。
阻止
攻击链与高危发现
报告包含 4 步攻击链,另有 2 项高危或严重发现。
复核
依赖与供应链卫生
发现 1 项需要关注的依赖或供应链线索。
攻击链
01
用户执行diet-tracker技能记录饮食
初始入口 · SKILL.md:1
02
调用update_memory.py更新本地日志文件
权限提升 · scripts/update_memory.py:79
03
复制饮食数据到Obsidian同步目录
权限提升 · scripts/update_memory.py:82
04
通过subprocess执行git push将数据推送到GitHub(未声明)
最终危害 · scripts/update_memory.py:155
风险分是怎么被拉高的
文档欺骗/阴影功能 +30
SKILL.md完全未声明Git push行为,但update_memory.py实现了自动git推送
数据外泄 +15
饮食日志自动推送到GitHub,用户不知情的情况下隐私数据外传
供应链风险 +5
requests库无版本锁定
敏感路径访问 +5
访问/root/clawd/USER.md等用户配置文件
最关键的证据
高危 文档欺骗
未声明的Git自动推送功能
update_memory.py实现了完整的Git操作流程(add/commit/push),但SKILL.md对此只字未提。这是典型的阴影功能,用户以为只是在本地记录饮食,实际上数据被推送到了GitHub。
scripts/update_memory.py:147 在SKILL.md中明确声明Git同步功能,或提供配置文件让用户选择是否启用
高危 数据外泄
饮食数据自动外传到GitHub
用户的饮食记录会自动推送到/root/clawd/obsidian-vault的Git仓库,涉及个人隐私信息(饮食习惯、热量摄入等)外传。
scripts/update_memory.py:82 移除自动Git推送功能,或添加用户明确授权的确认机制
中危 供应链
requests库无版本锁定
get_food_nutrition.py使用requests库但未指定版本,存在依赖劫持风险。
scripts/get_food_nutrition.py:2 在requirements.txt中锁定版本:requests>=2.31.0
中危 敏感访问
访问用户配置文件/root/clawd/USER.md
脚本访问/root/clawd/目录下的USER.md文件,读取身高、体重、年龄、性别、活动水平等敏感个人信息。
scripts/get_food_nutrition.py:36 确保访问范围最小化,不读取与饮食追踪无关的信息
声明能力 vs 实际能力
文件系统 阻止
声明 READ
→ 推断 WRITE
scripts/update_memory.py:79 写入memory/目录,:82 复制到obsidian-vault 命令执行 阻止
声明 NONE
→ 推断 WRITE
scripts/update_memory.py:147-163 通过subprocess执行git命令 网络访问 阻止
声明 NONE
→ 推断 READ
scripts/update_memory.py:147-163 git push外传数据,get_food_nutrition.py:96 调用USDA API 环境变量 通过
声明 NONE
→ 推断 READ
scripts/get_food_nutrition.py:36 通过USER.md间接获取用户信息 可疑产物与外联
中危 外部 URL
https://api.nal.usda.gov/fdc/v1/food/search?api_key=DEMO_KEY&query= scripts/get_food_nutrition.py:96
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| requests | * | pip | 否 | 无版本锁定,存在供应链风险 |
| shutil | builtin | stdlib | 否 | 标准库,安全 |
| subprocess | builtin | stdlib | 否 | 标准库,但用于未声明的Git操作 |
文件构成
4 个文件 · 466 行
Python 2 个文件 · 342 行Markdown 1 个文件 · 113 行JSON 1 个文件 · 11 行
需关注文件 · 2
scripts/update_memory.py 未声明的Git自动推送功能 · 饮食数据自动外传到GitHub
scripts/get_food_nutrition.py requests库无版本锁定 · 访问用户配置文件/root/clawd/USER.md · https://api.nal.usda.gov/fdc/v1/food/search?api_key=DEMO_KEY&query=
其他文件 · SKILL.md · food_database.json
安全亮点
食品数据库采用本地JSON格式,避免网络依赖
USDA API使用DEMO_KEY(公共测试密钥),不会泄露真实凭证
代码结构清晰,主要功能实现正确
有错误处理和异常捕获