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
| Package | Version | Source | Known vuln | Notes |
| 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
30 files · 111.2 KB · 2706 lines
Python 18f · 2363LMarkdown 4f · 308LYAML 6f · 29LText 2f · 6L
├─
▾
📁
references
│ └─
📝
api_doc.md
Markdown
53L · 2.4 KB
├─
▾
📁
scripts
│ ├─
🐍
__init__.py
Python
1L · 61 B
│ ├─
🐍
config.py
Python
24L · 699 B
│ ├─
📋
config.yaml
YAML
1L · 3 B
│ ├─
🐍
skill.py
Python
23L · 586 B
│ └─
🐍
smyx_adult_facial_fatigue_stress_index_analysis.py
Python
102L · 3.6 KB
├─
▾
📁
skills
│ ├─
▾
📁
smyx_analysis
│ │ ├─
▾
📁
references
│ │ │ └─
📝
api_doc.md
Markdown
19L · 427 B
│ │ ├─
▾
📁
scripts
│ │ │ ├─
🐍
__init__.py
Python
0 B
│ │ │ ├─
🐍
api_service.py
Python
40L · 1.5 KB
│ │ │ ├─
🐍
config.py
Python
39L · 1003 B
│ │ │ ├─
📋
config.yaml
YAML
1L · 3 B
│ │ │ ├─
🐍
skill.py
Python
175L · 6.4 KB
│ │ │ └─
🐍
smyx_analysis.py
Python
115L · 3.7 KB
│ │ ├─
🐍
__init__.py
Python
0 B
│ │ └─
📄
requirements.txt
Text
3L · 45 B
│ └─
▾
📁
smyx_common
│ ├─
▾
📁
scripts
│ │ ├─
🐍
__init__.py
Python
9L · 177 B
│ │ ├─
🐍
api_service.py
Python
101L · 2.6 KB
│ │ ├─
🐍
base.py
Python
33L · 469 B
│ │ ├─
📋
config-dev.yaml
YAML
6L · 214 B
│ │ ├─
📋
config-prod.yaml
YAML
0 B
│ │ ├─
📋
config-test.yaml
YAML
6L · 256 B
│ │ ├─
🐍
config.py
Python
399L · 23.8 KB
│ │ ├─
📋
config.yaml
YAML
15L · 473 B
│ │ ├─
🐍
dao.py
Python
499L · 17.8 KB
│ │ ├─
🐍
skill.py
Python
85L · 2.4 KB
│ │ └─
🐍
util.py
Python
718L · 28.1 KB
│ ├─
🐍
__init__.py
Python
0 B
│ └─
📄
requirements.txt
Text
3L · 47 B
├─
📝
SKILL.md
Markdown
178L · 12.4 KB
└─
📝
skill-card.md
Markdown
58L · 2.2 KB
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,不在本地存储或二次传播