Why this conclusion was reached
0/4 dimensions flagged Pass Declared vs actual capability Declared resources and inferred behavior are broadly aligned.
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
用户身份自动管理阴影功能 +10
OpenIdUtil 类自动生成/读取/管理用户标识符,SKILL.md 未声明此行为
依赖版本未锁定 +5
requirements.txt 使用 requests>=2.28.0 无版本上限
文档与代码的微小不一致 +5
SKILL.md 描述叶片分析但实际支持图片+视频,API端点引用 lifeemergence.com 未显式列出
Most important evidence
Low Doc Mismatch
用户身份自动管理机制未声明
OpenIdUtil 类实现自动用户身份生成和管理逻辑:从环境变量、data/smyx-api-key.txt、本地 SQLite 数据库读取或生成用户标识符,并在后续 API 请求中作为身份标识使用。此机制在 SKILL.md 中无任何说明。
skills/smyx_common/scripts/util.py:238 在 SKILL.md 中补充说明:技能会自动管理内部用户身份,用于关联历史报告查询,不向用户暴露身份值。
Low Supply Chain
依赖版本未锁定
skills/smyx_analysis/requirements.txt 和 skills/smyx_common/requirements.txt 中 requests 使用 >=2.28.0 无版本上限,可能拉取存在安全漏洞的版本。
skills/smyx_analysis/requirements.txt:1 建议锁定版本上限,如 requests>=2.28.0,<2.32.0
Info Sensitive Access
读取工作区环境变量
技能读取 OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID 等环境变量用于身份关联。
skills/smyx_common/scripts/config.py:127 此行为合理,用于多Agent系统中的身份传递,建议在文档中说明。
Declared capability vs actual capability
Filesystem Pass
Declared WRITE
→ Inferred WRITE
SKILL.md:97 声明附件保存,scripts/smyx_analysis.py:84 执行文件写入 Network Pass
Declared READ
→ Inferred READ
SKILL.md:47 声明云端API查询,util.py:367 执行 HTTPS 请求到 lifeemergence.com Environment Pass
Declared NONE
→ Inferred READ
config.py:127 读取 OPENCLAW_SENDER_OPEN_ID/OPENCLAW_SENDER_USERNAME Database Pass
Declared NONE
→ Inferred WRITE
dao.py:89 创建 SQLite 数据库存储用户 token,SKILL.md 未声明本地存储
Suspicious artifacts and egress
Medium External URL
https://lifeemergence.com/sample.html SKILL.md:40
Medium External URL
https://clawhub.ai/user/18072937735 skill-card.md:9
Medium External URL
https://clawhub.ai/18072937735/skills/smyx-chinese-herbal-ingredient-trend-analysis skill-card.md:43
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 | 无版本上限锁定 |
| pyyaml | 未指定 | pip | No | 可能通过 transitives 引入 |
| sqlalchemy | 未指定 | pip | No | 本地 SQLite ORM |
File composition
30 files · 2681 lines Python 18 files · 2363 linesMarkdown 4 files · 283 linesYAML 6 files · 29 linesText 2 files · 6 lines
Files of concern · 4
skills/smyx_common/scripts/util.py Python · 718 lines
用户身份自动管理机制未声明
skills/smyx_common/scripts/config.py Python · 399 lines
读取工作区环境变量
SKILL.md Markdown · 180 lines
https://lifeemergence.com/sample.html
skill-card.md Markdown · 64 lines
https://clawhub.ai/user/18072937735 · https://clawhub.ai/18072937735/skills/smyx-chinese-herbal-ingredient-trend-analysis
Other files · dao.py · skill.py · smyx_analysis.py · smyx_chinese_herbal_ingredient_trend_analysis.py · api_service.py · skill.py +2
30 files · 109.8 KB · 2681 lines
Python 18f · 2363LMarkdown 4f · 283LYAML 6f · 29LText 2f · 6L
├─
▾
📁
references
│ └─
📝
api_doc.md
Markdown
20L · 630 B
├─
▾
📁
scripts
│ ├─
🐍
__init__.py
Python
1L · 66 B
│ ├─
🐍
config.py
Python
24L · 699 B
│ ├─
📋
config.yaml
YAML
1L · 3 B
│ ├─
🐍
skill.py
Python
23L · 588 B
│ └─
🐍
smyx_chinese_herbal_ingredient_trend_analysis.py
Python
102L · 3.5 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 · 472 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
180L · 12.3 KB
└─
📝
skill-card.md
Markdown
64L · 2.6 KB
Security positives
未发现恶意指标:无 base64 编码执行、无命令注入、无反向 shell
未发现凭证收割行为:token 仅存储于本地 SQLite,不外传
网络请求范围可控:仅与声明的 API 服务 lifeemergence.com 通信
工作区隔离机制完善:AgentContextUtil 防止数据污染
未访问敏感路径:无 ~/.ssh、~/.aws、.env 等敏感文件访问
代码结构清晰:业务逻辑与通用库分离,可审计性好