Why this conclusion was reached
1/4 dimensions flagged Block Declared vs actual capability 2 undeclared or violating capabilities were inferred.
Review Hidden execution and egress 10 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
代码使用 SQLite 本地数据库存储用户信息/token,但 SKILL.md 未提及数据库访问
文档未声明凭证管理 +5
代码读取 smyx-api-key.txt 和环境变量获取凭证,但未在声明中说明
文档未声明 API 登录流程 +5
代码包含 /sys/phoneLogin 登录接口调用,涉及用户凭证处理,但文档未说明
Most important evidence
Low Doc Mismatch
数据库操作未声明
技能使用 SQLite 本地数据库存储用户信息(username、token、open_token 等),但 SKILL.md 完全未提及数据库访问能力
skills/smyx_common/scripts/dao.py:51 在 SKILL.md 前置准备部分补充说明:本技能使用本地 SQLite 数据库存储用户身份信息
Low Doc Mismatch
凭证文件读取未声明
技能读取工作区 data/smyx-api-key.txt 获取 API 凭证,但 SKILL.md 未声明此文件访问行为
skills/smyx_common/scripts/util.py:193 在 SKILL.md 前置准备部分说明凭证文件用途
Low Doc Mismatch
API 登录接口未声明
代码调用 /sys/phoneLogin 接口进行静默注册/登录,涉及用户凭证处理,但 SKILL.md 未提及此后台行为
skills/smyx_common/scripts/util.py:235 在 SKILL.md 透明度说明部分补充 API 服务登录机制
Low Supply Chain
pydash 依赖存在复杂度风险
pydash 库提供 100+ 工具函数,包含深层属性访问、动态代码执行等复杂功能,攻击面较大
skills/smyx_analysis/requirements.txt:1 评估是否可以使用标准库替代 pydash,减少依赖风险
Declared capability vs actual capability
Filesystem Pass
Declared READ
→ Inferred READ
scripts/smyx_analysis.py:56-65 读取本地文件 Network Pass
Declared READ
→ Inferred WRITE
scripts/util.py:261-268 携带 token/凭证 POST 请求 Database Block
Declared NONE
→ Inferred WRITE
scripts/dao.py:51-53 创建 SQLite 数据库存储用户信息 Environment Block
Declared NONE
→ Inferred READ
scripts/config.py:64-70 读取 OPENCLAW/FEISHU 环境变量
Suspicious artifacts and egress
Medium External URL
https://lifeemergence.com/sample.html SKILL.md:34
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
29 files · 2686 lines Python 18 files · 2360 linesMarkdown 3 files · 291 linesYAML 6 files · 29 linesText 2 files · 6 lines
Files of concern · 3
skills/smyx_common/scripts/util.py Python · 718 lines
凭证文件读取未声明 · API 登录接口未声明
skills/smyx_common/scripts/dao.py Python · 499 lines
数据库操作未声明
SKILL.md Markdown · 252 lines
https://lifeemergence.com/sample.html
Other files · config.py · skill.py · smyx_analysis.py · smyx_aquarium_plant_health_monitor_analysis.py · api_service.py · skill.py +3
29 files · 110.9 KB · 2686 lines
Python 18f · 2360LMarkdown 3f · 291LYAML 6f · 29LText 2f · 6L
├─
▾
📁
references
│ └─
📝
api_doc.md
Markdown
20L · 686 B
├─
▾
📁
scripts
│ ├─
🐍
__init__.py
Python
1L · 57 B
│ ├─
🐍
config.py
Python
24L · 685 B
│ ├─
📋
config.yaml
YAML
1L · 3 B
│ ├─
🐍
skill.py
Python
23L · 576 B
│ └─
🐍
smyx_aquarium_plant_health_monitor_analysis.py
Python
99L · 3.4 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
252L · 16.2 KB
Security positives
核心功能(水草图像分析)实现清晰,无混淆代码
未发现反向 shell、Base64 执行等高危攻击模式
未发现凭证外传、敏感文件遍历等恶意行为
API 调用逻辑正常,token 处理符合规范
数据库路径强制解析到工作区共享目录,有防护机制
依赖版本已锁定,无 pip install * 风险