Skill Trust Decision

pet-breed-individual-recognition-analysis

宠物品种个体识别技能,本地仅做凭证缓存和API代理,无恶意行为,但存在未声明的本地数据库存储行为

Install decision first Source: ClawHub Scanned: Aug 26, 2026
Files 29
Artifacts 10
Violations 3
Findings 4

Why this conclusion was reached

1/4 dimensions flagged
Block
Declared vs actual capability

3 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

smyx-common-claw.db 存储 token/open_token,但未在 SKILL.md 中声明

凭证文件读取 +5

OpenIdUtil 读取 smyx-api-key.txt,未在文档中说明来源和用途

自动用户注册 +5

凭证过期时自动调用 /sys/phoneLogin 注册新用户,行为未声明

Most important evidence

Low Doc Mismatch

本地数据库存储未声明

skills/smyx_common/scripts/dao.py 创建 SQLite 数据库 smyx-common-claw.db 存储用户凭证(username, token, open_token),但 SKILL.md 未声明此本地持久化行为

skills/smyx_common/scripts/dao.py:89
在 SKILL.md 的隐私声明中补充说明本地凭证缓存机制
Low Doc Mismatch

凭证文件读取未声明

OpenIdUtil.get_api_key_file_open_id() 从 data/smyx-api-key.txt 读取凭证,该文件的来源和用途未在文档中说明

skills/smyx_common/scripts/util.py:298
明确 smyx-api-key.txt 的生成方式和用途
Low Doc Mismatch

自动用户注册行为未声明

RequestUtil._get_or_create_user() 在 token 不存在时自动调用 /sys/phoneLogin 注册新用户,此行为未在 SKILL.md 中说明

skills/smyx_common/scripts/util.py:334
在隐私声明中说明自动用户注册机制
Info Supply Chain

依赖版本已锁定

smyx_analysis 和 smyx_common 的 requirements.txt 均指定了明确版本(pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3),供应链风险较低

skills/smyx_analysis/requirements.txt:1
无需行动

Declared capability vs actual capability

Filesystem Pass
Declared READ
→
Inferred READ
scripts/pet_breed_individual_recognition_analysis.py:60 open(input_path, 'rb')
Filesystem Block
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py:89 创建 SQLite 数据库
Network Pass
Declared READ
→
Inferred WRITE
skills/smyx_common/scripts/util.py:380 requests.request 上传文件到 API
Environment Block
Declared NONE
→
Inferred READ
skills/smyx_common/scripts/config.py:195 读取 OPENCLAW_SENDER_OPEN_ID 等
Database Block
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py:89 SQLite 存储用户凭证

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
pydash 8.0.6 pip No 已锁定版本
SQLAlchemy 2.0.46 pip No 已锁定版本
PyYAML 6.0.3 pip No 已锁定版本

File composition

29 files · 2688 lines
Python 18 files · 2357 linesMarkdown 3 files · 296 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 · 256 lines
https://lifeemergence.com/sample.html
Other files · config.py · skill.py · smyx_analysis.py · pet_breed_individual_recognition_analysis.py · api_service.py · skill.py +3

Security positives

代码结构清晰,职责分离良好(smyx_common 作为共享库)
依赖版本已锁定(pydash, SQLAlchemy, PyYAML)
网络通信仅指向声明的域名(lifeemergence.com),无外部 IP 直连
未发现 base64 编码执行、eval()、subprocess 远程命令执行等高危模式
未发现访问 ~/.ssh、~/.aws、.env 等敏感路径
数据库路径通过 AgentContextUtil 重定向到工作区共享目录,有隔离机制