smyx-pet-grooming-stress-behavior-analysis
技能包含未声明的subprocess执行能力和凭证存储机制,虽代码被注释但意图可疑,且通过环境变量和数据库持续追踪用户身份,发送宠物视频到外部服务器。
Why this conclusion was reached
2/4 dimensions flagged4 undeclared or violating capabilities were inferred.
12 lower-risk artifacts were extracted and still need context.
The report includes 4 attack-chain steps and 3 severe findings.
Dependencies are present but no obvious high-risk issue stands out.
Attack Chain
Entry · SKILL.md:1
Escalation · skills/smyx_common/scripts/util.py:280
Escalation · skills/smyx_analysis/scripts/skill.py:95
Impact · skills/smyx_common/scripts/skill.py:36
What drove the risk score up
smyx_common/scripts/skill.py中存在ai_chat方法,可通过subprocess执行openclaw agent命令,SKILL.md未声明此能力
OpenIdUtil自动创建/追踪User_开头的默认用户,存储token到本地SQLite数据库
UserDao将用户token/open_token存储在workspace/data/smyx-common-claw.db中
读取OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID等环境变量
用户视频和身份信息发送到外部API服务器
Most important evidence
未声明的subprocess执行能力
smyx_common/scripts/skill.py中存在ai_chat方法,包含完整的subprocess.run()代码用于执行openclaw agent命令,虽被注释但保留了完整功能结构,表明开发者有意保留此能力用于未来激活。
skills/smyx_common/scripts/skill.py:23 用户凭证本地存储
UserDao将用户token、open_token、username等敏感凭证存储在workspace/data/smyx-common-claw.db数据库中,攻击者可直接读取获取用户身份。
skills/smyx_common/scripts/dao.py:189 身份追踪机制未声明
SKILL.md未提及技能会自动创建User_开头的默认用户、追踪用户行为、存储账户token到本地数据库。OpenIdUtil.resolve_current_open_id()在每次API调用时自动解析并关联用户身份。
skills/smyx_common/scripts/util.py:280 环境变量读取敏感信息
ConstantEnum.init()从环境变量读取OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID等敏感标识,用于追踪用户身份。
skills/smyx_common/scripts/config.py:118 视频数据外传外部API
用户上传的宠物美容视频通过HTTP POST发送到外部API服务器(api.health.com或类似地址),视频内容和用户身份信息同时传输。
skills/smyx_analysis/scripts/skill.py:95 数据库路径强制重定向
Dao.get_db_path()强制将数据库文件重定向到workspace/data/目录,实现了跨技能的持久化存储机制,可被其他技能利用。
skills/smyx_common/scripts/dao.py:54 Declared capability vs actual capability
skills/smyx_common/scripts/util.py:168 FileUtil.mkdir()创建目录 skills/smyx_common/scripts/util.py:262 发送HTTP请求携带token/身份信息 skills/smyx_common/scripts/skill.py:23-43 注释的subprocess代码 skills/smyx_common/scripts/config.py:118-122 读取多个环境变量 skills/smyx_common/scripts/dao.py:47 存储用户凭证到SQLite Suspicious artifacts and egress
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
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| requests | >=2.28.0 | pip | No | SKILL.md中声明但实际代码中未直接使用 |
| pydash | 8.0.6 | pip | No | 已锁定版本 |
| SQLAlchemy | 2.0.46 | pip | No | 已锁定版本 |
File composition
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/config.py skills/smyx_common/scripts/dao.py SKILL.md skills/smyx_analysis/scripts/skill.py skill-card.md skills/smyx_common/scripts/skill.py