smyx-elderly-gait-instability-detection-analysis
合法的老年人步态视频分析技能,代码结构清晰但存在隐私相关风险(静默身份创建、数据外传、凭证本地存储)
为什么得出这个结论
1/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 12 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
发现 1 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
OpenIdUtil 自动生成 User_xxxx 身份并存储到本地 SQLite 数据库
视频数据和用户信息通过 HTTPS POST 到外部 API (lifeemergence.com)
token/open_token 存储在 smyx-common-claw.db 中
最关键的证据
静默身份创建机制
OpenIdUtil.resolve_current_open_id() 在用户不知情时自动创建本地身份(User_xxxxxx 格式),并存储到 SQLite 数据库。代码逻辑:优先读取 data/smyx-api-key.txt → 查询本地数据库首个默认用户 → 不存在则生成新用户并持久化。
skills/smyx_common/scripts/util.py:293 视频分析数据外传
用户上传的步态视频(可能含敏感健康信息)通过 HTTPS POST 发送到外部 API (lifeemergence.com 相关域名)。SKILL.md 声明了隐私合规要求但未明确说明数据流向。
skills/smyx_common/scripts/config.yaml:4 认证凭证本地持久化
User 模型存储 token 和 open_token 到本地 SQLite 数据库 smyx-common-claw.db。虽然凭证用于 API 认证,但如果数据库文件被窃取可能导致账户接管。
skills/smyx_common/scripts/dao.py:67 subprocess 调用已注释
AgentSkill.ai_chat() 方法中构建了 subprocess 调用 openclaw agent 命令的逻辑(cmd 数组和 subprocess.run),但均被注释掉。当前代码不会执行任意命令。
skills/smyx_common/scripts/skill.py:35 环境变量读取
ConstantEnum.init() 读取 OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID 等环境变量用于身份解析。
skills/smyx_common/scripts/config.py:150 声明能力 vs 实际能力
scripts/smyx_analysis.py:89 读取本地视频文件 SKILL.md 声明使用网络 URL 输入;实际代码发送数据到外部 API config.py:150 读取 OPENCLAW_SENDER_OPEN_ID/OPENCLAW_SENDER_USERNAME 可疑产物与外联
https://lifeemergence.com/sample.html SKILL.md:34
https://clawhub.ai/user/smyx-sunjinhui skill-card.md:9
https://clawhub.ai/smyx-sunjinhui/skills/smyx-elderly-gait-instability-detection-analysis skill-card.md:41
http://192.168.1.234:9601/smyx-open-api skills/smyx_common/scripts/config-dev.yaml:2
http://192.168.1.234:4100 skills/smyx_common/scripts/config-dev.yaml:3
http://192.168.1.234:7070/jeecg-boot-xzgz skills/smyx_common/scripts/config-dev.yaml:4
https://livemonitortest.lifeemergence.com/smyx-open-api skills/smyx_common/scripts/config-test.yaml:2
http://livemonitortest.lifeemergence.com skills/smyx_common/scripts/config-test.yaml:3
https://healthtest.lifeemergence.com/jeecg-boot-xzgz skills/smyx_common/scripts/config-test.yaml:4
https://lifeemergence.com/jeecg-boot-xzgz skills/smyx_common/scripts/config.yaml:4
https://open.lifeemergence.com/smyx-open-api skills/smyx_common/scripts/config.yaml:5
http://livemonitor.lifeemergence.com skills/smyx_common/scripts/config.yaml:6
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| pydash | 8.0.6 | pip | 否 | 有版本锁定 |
| SQLAlchemy | 2.0.46 | pip | 否 | 有版本锁定 |
| PyYAML | 6.0.3 | pip | 否 | 有版本锁定 |
| requests | * | pip | 否 | SKILL.md 声明 requests>=2.28.0,但实际 requirements.txt 未锁定版本 |
文件构成
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/config.py skills/smyx_common/scripts/dao.py SKILL.md skill-card.md skills/smyx_common/scripts/skill.py