Skill Trust Decision

smyx-plant-nutrient-diagnosis-analysis

植物缺素症视觉诊断技能,核心功能正常,存在未声明数据库操作和被注释的可疑 subprocess 代码。

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

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 本地数据库存储用户信息,未在 SKILL.md 中声明 database:WRITE

阴影功能残留 +10

AgentSkill.ai_chat() 包含被注释的 subprocess.run() 调用 openclaw agent

环境变量访问 +5

读取 OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME 等身份相关环境变量

Most important evidence

Medium Doc Mismatch

AgentSkill.ai_chat() 包含被注释的可疑 subprocess 代码

skills/smyx_common/scripts/skill.py 第35-41行包含被注释的 subprocess.run() 调用,可执行 'openclaw agent' 命令。虽然当前被注释,但代码逻辑完整存在,属于阴影功能残留。

skills/smyx_common/scripts/skill.py:35
删除此段被注释的可疑代码,或添加明确的安全注释说明为何保留
Medium Priv Escalation

未声明的数据库操作

技能使用 SQLite 本地数据库创建 sys_user 表并执行 CRUD 操作,但在 SKILL.md 中未声明 database:WRITE 权限。数据库存储在 workspace/data/ 目录。

skills/smyx_common/scripts/dao.py:56
在 SKILL.md 中明确声明 database:WRITE 能力,说明用于本地用户身份管理
Low Sensitive Access

读取身份相关环境变量

skills/smyx_common/scripts/config.py 第85-89行读取 OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID 等身份相关环境变量。

skills/smyx_common/scripts/config.py:85
确认这些环境变量的访问范围和使用目的,符合 SKILL.md 中声明的'系统内部自动处理身份'

Declared capability vs actual capability

Filesystem Pass
Declared READ
→
Inferred READ
SKILL.md:198 - 声明读取本地图像/视频
Network Pass
Declared READ
→
Inferred READ
skills/smyx_common/scripts/util.py:290 - 调用外部 API
Database Block
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py:56 - SQLite 数据库创建和 CRUD 操作
Environment Block
Declared NONE
→
Inferred READ
skills/smyx_common/scripts/config.py:85 - 读取 OPENCLAW_SENDER_OPEN_ID
Shell Pass
Declared NONE
→
Inferred NONE
skills/smyx_common/scripts/skill.py:35 - subprocess 调用被注释

Suspicious artifacts and egress

Medium External URL
https://lifeemergence.com/sample.html

SKILL.md:38

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 有版本锁定
yaml 6.0.3 pip No 有版本锁定

File composition

29 files · 2681 lines
Python 18 files · 2360 linesMarkdown 3 files · 286 linesYAML 6 files · 29 linesText 2 files · 6 lines
Files of concern · 4
skills/smyx_common/scripts/config.py Python · 399 lines
读取身份相关环境变量
skills/smyx_common/scripts/dao.py Python · 499 lines
未声明的数据库操作
SKILL.md Markdown · 247 lines
https://lifeemergence.com/sample.html
skills/smyx_common/scripts/skill.py Python · 85 lines
AgentSkill.ai_chat() 包含被注释的可疑 subprocess 代码
Other files · util.py · skill.py · smyx_analysis.py · smyx_plant_nutrient_diagnosis_analysis.py · api_service.py · api_service.py +2

Security positives

核心功能(植物缺素症视觉诊断)实现清晰,与声明一致
依赖包有版本锁定(pydash==8.0.6, SQLAlchemy==2.0.46, yaml==6.0.3)
subprocess 调用代码被注释,不影响当前运行
数据库操作强制重定向到工作区共享 data 目录,不会污染其他目录
使用 SQLAlchemy ORM 而非裸 SQL,降低注入风险