Skill Trust Decision

smyx-adult-facial-fatigue-stress-index-analysis

合法面部疲劳/压力分析技能,核心功能清晰,无恶意代码,但存在未声明的系统交互行为(环境变量读取、自动身份创建)。

Install decision first Source: ClawHub Scanned: 27 days ago
Files 30
Artifacts 12
Violations 4
Findings 4

Why this conclusion was reached

1/4 dimensions flagged
Block
Declared vs actual capability

4 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.

Review
Dependencies and supply chain hygiene

1 dependency or supply-chain issues need attention.

What drove the risk score up

未声明的环境变量读取 +8

代码读取 OPENCLAW_SENDER_OPEN_ID / OPENCLAW_SENDER_USERNAME / FEISHU_OPEN_ID,但 SKILL.md 未声明

未声明的自动身份创建与数据库持久化 +6

OpenIdUtil 自动生成 User_xxxxxx 并写入 SQLite 数据库,SKILL.md 未提及

内部 API 密钥存储机制 +4

支持读写 data/smyx-api-key.txt 存储内部标识,行为未在文档说明

依赖包版本锁定(+2抵消分) +-2

requirements.txt 有明确版本约束(pydash==8.0.6, SQLAlchemy==2.0.46),降低供应链风险

Most important evidence

Low Doc Mismatch

未声明的环境变量读取行为

SKILL.md 完全未提及代码会读取 OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID 等环境变量,用于自动初始化用户身份。

skills/smyx_common/scripts/config.py:91
在 SKILL.md 资源索引或注意事项章节补充说明:技能会自动读取特定环境变量用于身份关联。
Low Doc Mismatch

未声明的自动身份创建与数据库持久化

OpenIdUtil 在未找到身份时会自动生成 User_xxxxxx 格式用户名(6位随机哈希),创建 SQLite 记录并存入 smyx-common-claw.db,这是影子功能。

skills/smyx_common/scripts/util.py:275
在 SKILL.md 中声明:技能会自动创建本地缺省用户标识并持久化存储,以支持报告历史关联。
Low Sensitive Access

未声明的内部凭证文件读写

代码支持读写 data/smyx-api-key.txt 存储内部 API 标识,并在数据库中保存 token/open_token,SKILL.md 未提及此持久化存储机制。

skills/smyx_common/scripts/util.py:230
在 SKILL.md 中补充说明技能会在工作区 data 目录存储凭证信息。
Info Sensitive Access

Agent 工作区感知功能

AgentContextUtil 自动检测当前 Agent 工作区根目录,用于决定数据库存放路径,代码有详细的路径重定向逻辑确保隔离。

skills/smyx_common/scripts/util.py:158
属于框架层设计,不影响用户安全,可忽略。

Declared capability vs actual capability

Filesystem Block
Declared NONE
→
Inferred WRITE
scripts/smyx_adult_facial_fatigue_stress_index_analysis.py:62 写入结果文件
Network Block
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/util.py:217 requests.request() 调用外部 API
Database Block
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py:91 SQLite 数据库写入用户标识
Environment Block
Declared NONE
→
Inferred READ
skills/smyx_common/scripts/config.py:91-96 读取 OPENCLAW/FEISHU 环境变量
Shell Pass
Declared NONE
→
Inferred NONE
skills/smyx_common/scripts/skill.py:44 subprocess 调用已被注释,不执行

Suspicious artifacts and egress

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

SKILL.md:34

Medium External URL
https://clawhub.ai/user/smyx-sunjinhui

skill-card.md:9

Medium External URL
https://clawhub.ai/smyx-sunjinhui/skills/smyx-adult-facial-fatigue-stress-index-analysis

skill-card.md:40

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
requests >=2.28.0 pip No 仅声明最低版本,无版本锁定
pydash 8.0.6 pip No 版本锁定
SQLAlchemy 2.0.46 pip No 版本锁定
PyYAML 6.0.3 pip No 版本锁定

File composition

30 files · 2706 lines
Python 18 files · 2363 linesMarkdown 4 files · 308 linesYAML 6 files · 29 linesText 2 files · 6 lines
Files of concern · 4
skills/smyx_common/scripts/util.py Python · 718 lines
未声明的自动身份创建与数据库持久化 · 未声明的内部凭证文件读写 · Agent 工作区感知功能
skills/smyx_common/scripts/config.py Python · 399 lines
未声明的环境变量读取行为
SKILL.md Markdown · 178 lines
https://lifeemergence.com/sample.html
skill-card.md Markdown · 58 lines
https://clawhub.ai/user/smyx-sunjinhui · https://clawhub.ai/smyx-sunjinhui/skills/smyx-adult-facial-fatigue-stress-index-analysis
Other files · dao.py · skill.py · smyx_analysis.py · smyx_adult_facial_fatigue_stress_index_analysis.py · api_service.py · skill.py +2

Security positives

代码无恶意行为:无 base64 编码、无 eval、无反向 shell、无凭证收割
API 端点均为明确域名 lifeemergence.com,无裸 IP 或未知第三方
依赖包版本严格锁定(pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3)
数据库路径强制重定向到工作区共享 data 目录,防止跨技能污染
subprocess 调用已被注释,不会执行外部命令
代码包含 try-except 异常处理,不会因文件/网络错误泄露堆栈
生物特征数据仅发送至云端 API,不在本地存储或二次传播