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
文档声明宽泛 +15
SKILL.md未明确说明图片/视频数据会上传至外部API服务器(lifeemergence.com)
内部身份管理未声明 +5
技能自动管理User_前缀的内部身份标识并在本地数据库存储token,文档未提及
Most important evidence
Medium Doc Mismatch
数据外传未在文档中明确声明
SKILL.md描述为'调用API分析',但未明确告知用户上传的图片/视频会被发送至lifeemergence.com外部服务器。用户上传的媒体文件会被完整发送到云端API进行分析。
skills/smyx_common/scripts/util.py:305 在SKILL.md的'能力范围'部分明确说明:图片/视频会上传至云端API服务器进行分析
Low Sensitive Access
本地数据库存储认证凭证
技能在data/smyx-common-claw.db中存储用户的token、open_token等认证信息,用于后续API调用。
skills/smyx_common/scripts/dao.py:28 文档中说明凭证的存储位置和用途,增强透明度
Info Priv Escalation
内部身份自动生成与复用
技能自动生成User_前缀的内部身份标识,在本地不存在时创建缺省用户,用于API调用身份关联。
skills/smyx_common/scripts/util.py:228 这是正常的身份管理机制,但应向用户说明
Declared capability vs actual capability
Filesystem Pass
Declared READ
→ Inferred READ
skills/smyx_analysis/scripts/skill.py:54 open() Network Block
Declared READ
→ Inferred WRITE
skills/smyx_common/scripts/util.py:305 requests.request() 发送文件到外部API Shell Pass
Declared NONE
→ Inferred NONE
subprocess调用已被注释,skills/smyx_common/scripts/skill.py:32
Suspicious artifacts and egress
Medium External URL
https://lifeemergence.com/sample.html SKILL.md:33
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 | SKILL.md中声明的依赖 |
| pydash | ==8.0.6 | requirements.txt | No | 版本已锁定 |
| SQLAlchemy | ==2.0.46 | requirements.txt | No | 版本已锁定 |
| yaml/PyYAML | 6.0.3 | requirements.txt | No | 版本已锁定 |
File composition
29 files · 2610 lines Python 18 files · 2357 linesMarkdown 3 files · 218 linesYAML 6 files · 29 linesText 2 files · 6 lines
Files of concern · 3
skills/smyx_common/scripts/util.py Python · 718 lines
数据外传未在文档中明确声明 · 内部身份自动生成与复用
skills/smyx_common/scripts/dao.py Python · 499 lines
本地数据库存储认证凭证
SKILL.md Markdown · 178 lines
https://lifeemergence.com/sample.html
Other files · config.py · skill.py · smyx_analysis.py · cat_face_recognition_analysis.py · api_service.py · skill.py +3
29 files · 103.6 KB · 2610 lines
Python 18f · 2357LMarkdown 3f · 218LYAML 6f · 29LText 2f · 6L
├─
▾
📁
references
│ └─
📝
api_doc.md
Markdown
21L · 665 B
├─
▾
📁
scripts
│ ├─
🐍
__init__.py
Python
1L · 31 B
│ ├─
🐍
cat_face_recognition_analysis.py
Python
96L · 3.1 KB
│ ├─
🐍
config.py
Python
24L · 648 B
│ ├─
📋
config.yaml
YAML
1L · 3 B
│ └─
🐍
skill.py
Python
23L · 567 B
├─
▾
📁
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 · 9.3 KB
Security positives
代码结构清晰,模块化设计良好(smyx_common基础库 + smyx_analysis业务技能)
无高危代码特征:无base64解码、无裸IP请求、无curl|bash管道
API调用使用HTTPS,凭证通过header传递(非URL参数)
subprocess.run调用已被注释排除
文件操作有格式验证和大小限制(最大10MB,支持mp4/avi/mov/jpg/png)
依赖版本锁定(pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3)