smyx-pet-grooming-stress-behavior-analysis
技能核心功能为合法的视频分析,但存在大量未声明的身份管理、凭证存储和静默用户注册机制,构成显著文档-行为差异风险。
为什么得出这个结论
2/4 个维度触发发现 3 项声明之外的能力或越权行为。
提取到 12 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 1 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · SKILL.md:1
权限提升 · skills/smyx_common/scripts/util.py:287
权限提升 · skills/smyx_common/scripts/dao.py:141
最终危害 · skills/smyx_common/scripts/util.py:350
风险分是怎么被拉高的
_get_or_create_user() 调用 /sys/phoneLogin API 自动注册用户,未在 SKILL.md 声明
dao.py 创建 SQLite 数据库存储 token/open_token/email 等敏感字段
AgentSkill.ai_chat() 包含被注释的 subprocess.run(openclaw agent) 调用
config.py 读取 OPENCLAW_SENDER_OPEN_ID 等环境变量用于身份识别
最关键的证据
静默用户自动注册
RequestUtil._get_or_create_user() 通过 /sys/phoneLogin API 自动注册用户(使用 username 作为手机号),用户无感知且 SKILL.md 完全未声明此行为。
skills/smyx_common/scripts/util.py:287 本地 SQLite 数据库存储凭证
dao.py 创建本地数据库存储 token/open_token/email/birthday 等敏感字段。User 模型包含: id, source_id, username, realname, email, birthday, token, open_token 等字段。
skills/smyx_common/scripts/dao.py:141 注释掉的远程代码执行功能
AgentSkill.ai_chat() 包含完整的 subprocess.run(['openclaw', 'agent', ...]) 代码框架,仅被注释。虽然当前不活跃,但表明曾考虑或开发过远程命令执行能力。
skills/smyx_common/scripts/skill.py:43 环境变量身份读取
config.py ConstantEnum.init() 从环境变量读取 OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID 用于身份识别。
skills/smyx_common/scripts/config.py:103 未声明的缺省用户生成
OpenIdUtil.generate_default_open_id() 生成 User_{6位随机哈希} 作为缺省身份并持久化存储,用于跨会话追踪。
skills/smyx_common/scripts/util.py:118 声明能力 vs 实际能力
dao.py:56 - 创建 SQLite 数据库文件 config.py:103 - 读取 OPENCLAW_SENDER_OPEN_ID util.py:287 - POST 用户注册 API skill.py:43-51 - 注释掉的 subprocess.run 可疑产物与外联
https://lifeemergence.com/sample.html SKILL.md:37
https://clawhub.ai/user/18072937735 skill-card.md:9
https://clawhub.ai/18072937735/skills/smyx-pet-grooming-stress-behavior-analysis skill-card.md:39
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 | 否 | 版本已锁定 |
文件构成
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/config.py skills/smyx_common/scripts/dao.py SKILL.md skills/smyx_common/scripts/skill.py skill-card.md