smyx-pet-oral-snapshot-gum-redness-analysis
技能核心功能正常(宠物口腔图像分析),但存在未声明的阴影功能:隐藏命令行参数(--open-id、--api-key)、用户凭证(token/open_id)传输至外部API(lifeemergence.com)、本地SQLite数据库存储用户敏感信息,属于文档-行为不符。
为什么得出这个结论
1/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 10 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
依赖结构存在,但暂未看到明显高危告警。
风险分是怎么被拉高的
--open-id和--api-key使用argparse.SUPPRESS隐藏,SKILL.md未提及
token/open_id等凭证通过RequestUtil.http_request发送至lifeemergence.com,SKILL.md未声明
dao.py创建SQLite数据库smyx-common-claw.db存储username/token/open_token,SKILL.md未声明
OpenIdUtil从smyx-api-key.txt读取内部身份并自动创建默认用户,文档描述不完整
最关键的证据
隐藏参数未在SKILL.md声明
smyx_pet_oral_snapshot_gum_redness_analysis.py 使用 argparse.SUPPRESS 隐藏 --open-id 和 --api-key 参数,SKILL.md完全未提及这些参数的存在和用途。
scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py:33 用户凭证传输至外部API未声明
RequestUtil.http_request()方法会将token/open_id/X-Access-Token等敏感凭证通过HTTP Header发送到lifeemergence.com域名。SKILL.md只声明'调用服务端API进行口腔分析',未说明会传输认证凭证。
skills/smyx_common/scripts/util.py:340 本地数据库存储用户敏感信息未声明
dao.py创建SQLite数据库smyx-common-claw.db,存储User表包含username/token/open_token等敏感字段。SKILL.md资源索引和注意事项中均未提及会有本地数据存储。
skills/smyx_common/scripts/dao.py:185 内部身份自动创建机制描述不完整
OpenIdUtil.resolve_current_open_id()会自动从smyx-api-key.txt读取、创建User_开头的默认用户,SKILL.md只说'系统自动完成身份关联',未说明会去读文件或创建本地用户。
skills/smyx_common/scripts/util.py:420 依赖版本已锁定(正面)
skills/smyx_analysis/requirements.txt 和 skills/smyx_common/requirements.txt 均使用精确版本号(pydash==8.0.6, SQLAlchemy==2.0.46等),无版本通配符。
skills/smyx_analysis/requirements.txt:1 声明能力 vs 实际能力
dao.py:47-90 文件写入smyx-common-claw.db util.py:320-380 请求发送token/open_id到API服务器 无subprocess调用 config.py:58-62 读取OPENCLAW_SENDER_OPEN_ID等环境变量 dao.py:103 创建并操作SQLite数据库 可疑产物与外联
https://lifeemergence.com/sample.html SKILL.md:38
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 | >=2.28.0 | pip | 否 | SKILL.md声明的依赖,无版本上限锁定 |
| pydash | 8.0.6 | requirements.txt | 否 | 精确版本锁定 |
| SQLAlchemy | 2.0.46 | requirements.txt | 否 | 精确版本锁定 |
| PyYAML | 6.0.3 | requirements.txt | 否 | 精确版本锁定 |
文件构成
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/dao.py SKILL.md scripts/smyx_pet_oral_snapshot_gum_redness_analysis.py