smyx-elderly-gait-instability-detection-analysis
合法的老年人步态视频分析技能,代码结构清晰但存在隐私相关风险(静默身份创建、数据外传、凭证本地存储)
Why this conclusion was reached
1/4 dimensions flagged1 undeclared or violating capabilities were inferred.
12 lower-risk artifacts were extracted and still need context.
There is no explicit malicious chain in the report.
1 dependency or supply-chain issues need attention.
What drove the risk score up
OpenIdUtil 自动生成 User_xxxx 身份并存储到本地 SQLite 数据库
视频数据和用户信息通过 HTTPS POST 到外部 API (lifeemergence.com)
token/open_token 存储在 smyx-common-claw.db 中
Most important evidence
静默身份创建机制
OpenIdUtil.resolve_current_open_id() 在用户不知情时自动创建本地身份(User_xxxxxx 格式),并存储到 SQLite 数据库。代码逻辑:优先读取 data/smyx-api-key.txt → 查询本地数据库首个默认用户 → 不存在则生成新用户并持久化。
skills/smyx_common/scripts/util.py:293 视频分析数据外传
用户上传的步态视频(可能含敏感健康信息)通过 HTTPS POST 发送到外部 API (lifeemergence.com 相关域名)。SKILL.md 声明了隐私合规要求但未明确说明数据流向。
skills/smyx_common/scripts/config.yaml:4 认证凭证本地持久化
User 模型存储 token 和 open_token 到本地 SQLite 数据库 smyx-common-claw.db。虽然凭证用于 API 认证,但如果数据库文件被窃取可能导致账户接管。
skills/smyx_common/scripts/dao.py:67 subprocess 调用已注释
AgentSkill.ai_chat() 方法中构建了 subprocess 调用 openclaw agent 命令的逻辑(cmd 数组和 subprocess.run),但均被注释掉。当前代码不会执行任意命令。
skills/smyx_common/scripts/skill.py:35 环境变量读取
ConstantEnum.init() 读取 OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID 等环境变量用于身份解析。
skills/smyx_common/scripts/config.py:150 Declared capability vs actual capability
scripts/smyx_analysis.py:89 读取本地视频文件 SKILL.md 声明使用网络 URL 输入;实际代码发送数据到外部 API config.py:150 读取 OPENCLAW_SENDER_OPEN_ID/OPENCLAW_SENDER_USERNAME Suspicious artifacts and egress
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-elderly-gait-instability-detection-analysis skill-card.md:41
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 |
|---|---|---|---|---|
| pydash | 8.0.6 | pip | No | 有版本锁定 |
| SQLAlchemy | 2.0.46 | pip | No | 有版本锁定 |
| PyYAML | 6.0.3 | pip | No | 有版本锁定 |
| requests | * | pip | No | SKILL.md 声明 requests>=2.28.0,但实际 requirements.txt 未锁定版本 |
File composition
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