安全决策报告

diet-tracker

diet-tracker技能存在严重的文档欺骗行为:代码实现了未声明的Git自动推送功能,会将用户饮食数据外传到GitHub仓库,属于典型的阴影功能。

安装决策优先 来源: ClawHub 扫描时间: 1 天前
文件 4
IOC 1
越权项 3
发现 4
最直接的威胁证据
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 Python · 190 行
未声明的Git自动推送功能 · 饮食数据自动外传到GitHub
scripts/get_food_nutrition.py Python · 152 行
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(公共测试密钥),不会泄露真实凭证
代码结构清晰,主要功能实现正确
有错误处理和异常捕获