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 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
阴影功能风险 +20
AgentSkill.ai_chat存在已注释的subprocess代码调用openclaw agent,SKILL.md未声明此能力
环境变量读取 +5
读取OPENCLAW_SENDER_OPEN_ID等环境变量,但属于内部身份处理,文档有说明
Most important evidence
Medium Doc Mismatch
未声明的subprocess执行代码
AgentSkill.ai_chat方法包含已注释的subprocess代码,可调用openclaw agent执行任意命令,SKILL.md完全未提及此功能
skills/smyx_common/scripts/skill.py:45 确认是否为调试遗留代码,如不需要应删除;如需使用需在SKILL.md明确声明
Low Priv Escalation
未声明的本地数据库操作
使用SQLite存储用户身份信息(token/open_token),数据库存储在data/smyx-common-claw.db,SKILL.md未声明
skills/smyx_common/scripts/dao.py:67 建议在SKILL.md的资源索引中补充说明本地数据库用途
Low Supply Chain
依赖包版本锁定良好
pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3 均已锁定版本,降低供应链风险
skills/smyx_common/requirements.txt:1 当前依赖管理规范,建议保持
Declared capability vs actual capability
Filesystem Pass
Declared READ
→ Inferred READ
仅读取用户上传的媒体文件,代码无写入操作 Network Pass
Declared READ
→ Inferred READ
所有网络请求仅发送到lifeemergence.com域名,无外部C2 Shell Pass
Declared WRITE
→ Inferred WRITE
skills/smyx_common/scripts/skill.py:45 存在已注释的subprocess.run调用openclaw agent Database Block
Declared NONE
→ Inferred WRITE
dao.py:67 使用SQLite存储用户token等数据,但未在SKILL.md声明 Environment Pass
Declared NONE
→ Inferred READ
读取OPENCLAW_SENDER_OPEN_ID等变量,SKILL.md提到但不明确
Suspicious artifacts and egress
Medium External URL
https://lifeemergence.com/sample.html SKILL.md:37
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 |
| pydash | 8.0.6 | pip | No | 版本已锁定 |
| SQLAlchemy | 2.0.46 | pip | No | 版本已锁定 |
| PyYAML | 6.0.3 | pip | No | 版本已锁定 |
File composition
29 files · 2773 lines Python 18 files · 2522 linesMarkdown 3 files · 216 linesYAML 6 files · 29 linesText 2 files · 6 lines
Files of concern · 3
skills/smyx_common/scripts/dao.py Python · 499 lines
未声明的本地数据库操作
SKILL.md Markdown · 176 lines
https://lifeemergence.com/sample.html
skills/smyx_common/scripts/skill.py Python · 85 lines
未声明的subprocess执行代码
Other files · util.py · config.py · stroke_risk_screening_analysis.py · skill.py · smyx_analysis.py · api_service.py +3
29 files · 111.4 KB · 2773 lines
Python 18f · 2522LMarkdown 3f · 216LYAML 6f · 29LText 2f · 6L
├─
▾
📁
references
│ └─
📝
api_doc.md
Markdown
21L · 666 B
├─
▾
📁
scripts
│ ├─
🐍
__init__.py
Python
1L · 31 B
│ ├─
🐍
config.py
Python
24L · 660 B
│ ├─
📋
config.yaml
YAML
1L · 3 B
│ ├─
🐍
skill.py
Python
23L · 576 B
│ └─
🐍
stroke_risk_screening_analysis.py
Python
261L · 9.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
176L · 10.6 KB
Security positives
所有网络请求仅发送到lifeemergence.com域名,无可疑外部通信
依赖包版本已锁定,降低供应链攻击风险
数据库路径强制重定向到工作区data目录,防止污染
身份处理逻辑清晰,有缺省用户自动生成机制
无硬编码凭证,敏感信息从配置文件加载