smyx-driver-flushing-sweat-detection-analysis
技能声明为本地视频分析,实际将视频上传至外部云服务(lifeemergence.com);未声明凭证存储机制和网络通信行为;内部身份自动生成且凭证明文写入本地文件,存在数据外泄风险。
为什么得出这个结论
2/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 12 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 0 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · skills/smyx_analysis/scripts/smyx_analysis.py:85
权限提升 · skills/smyx_common/scripts/util.py:330
最终危害 · skills/smyx_common/scripts/util.py:316
最终危害 · skills/smyx_common/scripts/dao.py:89
风险分是怎么被拉高的
SKILL.md描述为'本地DMS摄像头分析',但代码将视频上传至https://lifeemergence.com处理
skill.py:75-90 将token/open_token存储到本地SQLite数据库,未在文档中声明
OpenIdUtil自动生成User_xxx格式身份并写入data/smyx-api-key.txt
config.yaml包含app_id和tenant_code等业务标识
requirements.txt中requests>=2.28.0无版本上限
最关键的证据
视频数据上传外部云服务未声明
SKILL.md描述技能功能为'通过车载DMS摄像头实时分析',暗示本地处理。但代码实现通过requests库将视频文件POST到https://lifeemergence.com外部云服务进行AI分析。
skills/smyx_analysis/scripts/api_service.py:19 凭证明文存储在本地文件
OpenIdUtil.get_api_key_file_open_id()将内部身份标识写入data/smyx-api-key.txt文件,明文存储。
skills/smyx_common/scripts/util.py:268 身份凭证上传外部服务器
RequestUtil在每次HTTP请求时自动携带X-Access-Token、X-Api-Key、Authorization等认证头发送至外部API,凭证与用户身份数据绑定传输。
skills/smyx_common/scripts/util.py:316 未声明内部身份生成机制
OpenIdUtil自动生成User_xxxxxx格式的内部身份标识,用户完全不知情的情况下被分配了匿名身份。
skills/smyx_common/scripts/util.py:256 依赖包版本未锁定
requirements.txt中requests>=2.28.0没有设置上限,可能引入包含漏洞的新版本。
skills/smyx_analysis/requirements.txt:1 读取环境变量中的飞书身份
ConstantEnum.init()从环境变量读取FEISHU_OPEN_ID,可能获取其他系统身份信息。
skills/smyx_common/scripts/config.py:66 声明能力 vs 实际能力
skills/smyx_analysis/scripts/smyx_analysis.py:103 写结果到--output指定路径 skills/smyx_common/scripts/dao.py:68 创建并写入SQLite数据库smyx-common-claw.db skills/smyx_analysis/scripts/api_service.py:19 调用http_post上传视频文件到外部API skills/smyx_common/scripts/config.py:63-67 读取OPENCLAW_SENDER_OPEN_ID/FEISHU_OPEN_ID 可疑产物与外联
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-driver-flushing-sweat-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 | >=2.28.0 | pip | 否 | 无版本上限锁定 |
| pydash | ==8.0.6 | pip | 否 | 已锁定版本 |
| SQLAlchemy | ==2.0.46 | pip | 否 | 已锁定版本 |
| yaml | ==6.0.3 | pip | 否 | 已锁定版本 |
文件构成
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/config.py SKILL.md skill-card.md skills/smyx_analysis/scripts/api_service.py