smyx-sneeze-cough-detection-analysis
技能声称仅用于宠物打喷嚏/咳嗽检测,但实际包含未声明的数据库操作、用户自动注册/登录和令牌管理功能,构成明显的声明-行为差异。
为什么得出这个结论
2/4 个维度触发发现 4 项声明之外的能力或越权行为。
提取到 12 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 2 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · SKILL.md:1
权限提升 · skills/smyx_common/scripts/config.py:96
权限提升 · skills/smyx_common/scripts/util.py:396
最终危害 · skills/smyx_common/scripts/dao.py:182
风险分是怎么被拉高的
SKILL.md仅声明requests依赖,实际使用SQLAlchemy/pydash并实现完整用户管理系统
OpenIdUtil._get_or_create_user()调用/sys/phoneLogin自动注册用户
User模型存储token/open_token到本地SQLite数据库
config.py读取OPENCLAW_SENDER_OPEN_ID等环境变量
最关键的证据
声明能力与实际实现严重不符
SKILL.md声称只需requests>=2.28.0依赖,实际使用pydash、SQLAlchemy、PyYAML等复杂框架,并实现完整的用户注册、登录和令牌管理系统
skills/smyx_analysis/requirements.txt:1 未声明的环境变量读取
从环境变量读取OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID等身份标识,用于自动关联用户身份
skills/smyx_common/scripts/config.py:96 用户凭证本地存储
User模型包含token和open_token字段,存储到本地SQLite数据库,未在文档中声明
skills/smyx_common/scripts/dao.py:182 自动用户创建功能
当检测不到open_id时,代码自动创建User_开头的随机用户名并调用远程API完成注册,完全未在文档中说明
skills/smyx_common/scripts/util.py:396 声明能力 vs 实际能力
skills/smyx_common/scripts/dao.py:72 创建本地SQLite数据库 skills/smyx_common/scripts/util.py:396 调用/sys/phoneLogin注册用户 skills/smyx_common/scripts/config.py:96 读取OPENCLAW_SENDER_OPEN_ID skills/smyx_common/scripts/dao.py:49 完整CRUD操作 可疑产物与外联
https://lifeemergence.com/sample.html SKILL.md:34
https://clawhub.ai/user/18072937735 skill-card.md:9
https://clawhub.ai/18072937735/skills/smyx-sneeze-cough-detection-analysis skill-card.md:43
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
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| requests | 未声明(依赖文档缺失) | pip | 否 | 主代码依赖但未在requirements.txt中 |
| 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 skill-card.md