smyx-driver-flushing-sweat-detection-analysis
技能文档声明为驾驶员健康监测工具,但代码包含大量未声明的影子功能:本地SQLite数据库存储用户凭证、自动创建缺省用户、环境变量读取、Agent工作区感知、以及已注释的远程命令执行代码。存在文档-行为严重不符。
SKILL.md未声明该技能会创建和管理本地SQLite数据库(smyx-common-claw.db),存储用户凭证信息(User模型包含token、open_token字段)。数据库路径强制重定向到Agent工作区共享data目录。
skills/smyx_common/scripts/dao.py:100 为什么得出这个结论
2/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 12 个一般风险产物,需要结合上下文判断。
报告包含 0 步攻击链,另有 2 项高危或严重发现。
发现 1 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
SKILL.md未声明本地数据库、用户创建、Agent工作区感知功能
User模型存储token/open_token到SQLite数据库
读取OPENCLAW_SENDER_OPEN_ID等环境变量
skills/smyx_common/scripts/skill.py中注释的subprocess.run代码
requests>=2.28.0无版本锁定
token数据POST到lifeemergence.com域名
最关键的证据
影子功能-本地SQLite数据库存储
SKILL.md未声明该技能会创建和管理本地SQLite数据库(smyx-common-claw.db),存储用户凭证信息(User模型包含token、open_token字段)。数据库路径强制重定向到Agent工作区共享data目录。
skills/smyx_common/scripts/dao.py:100 用户凭证存储风险
User模型包含token和open_token字段,会通过API获取后存储到本地SQLite,并在后续请求中作为认证头发送。数据库文件位于工作区共享目录,可能被其他技能访问。
skills/smyx_common/scripts/dao.py:310 环境变量读取未声明
代码读取多个环境变量用于身份识别和Agent工作区检测:OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID、OPENCLAW_WORKSPACE。SKILL.md未提及环境变量访问。
skills/smyx_common/scripts/config.py:88 已注释的危险代码-subprocess
skills/smyx_common/scripts/skill.py中ai_chat方法包含完整的subprocess.run调用代码(已注释),可执行openclaw agent命令。这表明原设计支持远程命令执行,当前虽被禁用但代码仍存在。
skills/smyx_common/scripts/skill.py:36 自动用户创建功能未声明
OpenIdUtil类实现自动创建缺省用户逻辑:当无open_id时生成User_{6位随机哈希}并写入本地数据库。SKILL.md未声明此行为,且用户对此用户创建过程不知情。
skills/smyx_common/scripts/util.py:280 依赖包版本未锁定
SKILL.md声明requests>=2.28.0,但未锁定最大版本号,存在依赖供应链风险。
SKILL.md:53 外部API数据传输
代码向lifeemergence.com域名发送包含token的HTTP请求。需确认数据传输范围和目的地的合规性。
skills/smyx_common/scripts/util.py:410 声明能力 vs 实际能力
scripts/smyx_driver_flushing_sweat_detection_analysis.py:77-80 代码写入output文件; dao.py:140 os.makedirs创建目录 util.py:RequestUtil.http_post 发送POST请求携带token到外部API dao.py:100-160 创建SQLite数据库smyx-common-claw.db,存储用户凭证 config.py:88-93 读取OPENCLAW_SENDER_OPEN_ID等环境变量 skills/smyx_common/scripts/skill.py:36-53 注释的subprocess.run代码可启用远程命令执行 可疑产物与外联
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 | 否 | — |
| 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 skills/smyx_common/scripts/skill.py