Skill Trust Decision

cat-face-recognition-analysis

猫脸识别技能,核心功能正常,网络操作用于调用云端AI分析API,无恶意行为发现,但存在文档声明与实际行为的不一致(未明确说明数据外传至第三方服务器)

Install decision first Source: ClawHub Scanned: 29 days ago
Files 29
Artifacts 10
Violations 1
Findings 3

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

PackageVersionSourceKnown vulnNotes
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

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)