Skill Trust Decision

smyx-elderly-medication-compliance-analysis

功能合法的老年服药监控技能,但存在影子凭证收集机制:自动读取/创建用户标识符、存储token至本地SQLite数据库、访问系统环境变量获取身份信息,云端数据流未完全在SKILL.md中声明。

Install decision first Source: ClawHub Scanned: 13 days ago
Files 30
Artifacts 12
Violations 1
Findings 5
Most direct threat evidence

Why this conclusion was reached

1/4 dimensions flagged
Block
Declared vs actual capability

1 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

12 lower-risk artifacts were extracted and still need context.

Pass
Attack chain and severe findings

There is no explicit malicious chain in the report.

Pass
Dependencies and supply chain hygiene

Dependencies are present but no obvious high-risk issue stands out.

What drove the risk score up

影子凭证管理 +15

OpenIdUtil自动读取/创建smyx-api-key.txt中的用户标识符,未在SKILL.md声明

本地数据库存储认证信息 +10

dao.py将token/open_token存入本地SQLite,文档未明确说明

自动用户注册 +10

util.py中_get_or_create_user自动调用/jeecg-boot-xzgz接口注册用户

环境变量身份读取 +5

config.py读取OPENCLAW_SENDER_OPEN_ID等环境变量

视频数据云端外传 +5

SKILL.md已声明但缺少数据保留说明

Most important evidence

Medium Credential Theft

影子凭证收集机制

OpenIdUtil.get_api_key_file_open_id()自动读取data/smyx-api-key.txt中的内部标识符作为用户身份,SKILL.md未声明此机制

skills/smyx_common/scripts/util.py:290
在SKILL.md明确说明内部身份标识的来源和使用方式
Medium Sensitive Access

自动用户创建与注册

_get_or_create_user()通过POST /sys/phoneLogin接口自动注册用户,包括从username提取手机号逻辑

skills/smyx_common/scripts/util.py:200
确认此自动注册行为是否为系统架构必需
Medium Sensitive Access

环境变量身份读取

config.py从环境变量读取OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID作为身份标识

skills/smyx_common/scripts/config.py:180
明确说明读取哪些环境变量及其用途
Low Data Exfil

视频数据云端外传

用户视频上传至lifeemergence.com服务器处理,skill-card.md有提及但缺少数据保留期说明

skills/smyx_analysis/scripts/skill.py:100
补充数据保留、删除和访问控制策略
Low Supply Chain

第三方依赖无版本锁定

pydash==8.0.6、SQLAlchemy==2.0.46等依赖未发现已知漏洞,但建议锁定次要版本

skills/smyx_common/requirements.txt:1
依赖管理符合常规实践,可保持现状

Declared capability vs actual capability

Filesystem Pass
Declared NONE
→
Inferred READ
skills/smyx_analysis/scripts/skill.py:82 open(input_path, 'rb')
Network Pass
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/util.py:180 requests.post上传视频/凭证到外部API
Environment Block
Declared NONE
→
Inferred READ
skills/smyx_common/scripts/config.py:180 读取OPENCLAW_SENDER_OPEN_ID等
Database Pass
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py:50 存储token/open_token到SQLite

Suspicious artifacts and egress

Medium External URL
https://lifeemergence.com/sample.html

SKILL.md:34

Medium External URL
https://clawhub.ai/user/18072937735

skill-card.md:9

Medium External URL
https://clawhub.ai/18072937735/skills/smyx-elderly-medication-compliance-analysis

skill-card.md:39

Medium External URL
http://192.168.1.234:9601/smyx-open-api

skills/smyx_common/scripts/config-dev.yaml:2

Medium External URL
http://192.168.1.234:4100

skills/smyx_common/scripts/config-dev.yaml:3

Medium External URL
http://192.168.1.234:7070/jeecg-boot-xzgz

skills/smyx_common/scripts/config-dev.yaml:4

Medium External URL
https://livemonitortest.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config-test.yaml:2

Medium External URL
http://livemonitortest.lifeemergence.com

skills/smyx_common/scripts/config-test.yaml:3

Medium External URL
https://healthtest.lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config-test.yaml:4

Medium External URL
https://lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config.yaml:4

Medium External URL
https://open.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config.yaml:5

Medium External URL
http://livemonitor.lifeemergence.com

skills/smyx_common/scripts/config.yaml:6

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
pydash 8.0.6 pip No 轻量级工具库
SQLAlchemy 2.0.46 pip No ORM库
PyYAML 6.0.3 pip No 配置解析

File composition

30 files · 2708 lines
Python 18 files · 2363 linesMarkdown 4 files · 310 linesYAML 6 files · 29 linesText 2 files · 6 lines
Files of concern · 5
skills/smyx_common/scripts/util.py Python · 718 lines
影子凭证收集机制 · 自动用户创建与注册
skills/smyx_common/scripts/config.py Python · 399 lines
环境变量身份读取
SKILL.md Markdown · 177 lines
https://lifeemergence.com/sample.html
skills/smyx_analysis/scripts/skill.py Python · 175 lines
视频数据云端外传
skill-card.md Markdown · 59 lines
https://clawhub.ai/user/18072937735 · https://clawhub.ai/18072937735/skills/smyx-elderly-medication-compliance-analysis
Other files · dao.py · smyx_analysis.py · smyx_elderly_medication_compliance_analysis.py · api_service.py · skill.py · api_doc.md +1

Security positives

技能功能与文档描述一致,核心功能为合法的老年服药监控
无反向shell、命令注入等主动攻击代码
无base64编码执行、eval等混淆行为
未访问~/.ssh、.env等典型敏感凭证路径
本地数据库路径重定向至workspace/data目录,符合沙箱规范