Skill Trust Decision

infant-blanket-kick-monitoring-analysis

婴儿监控技能存在未声明的数据库存储和身份信息外传行为,代码包含已禁用的远程代码执行路径,隐私风险较高

Install decision first Source: ClawHub Scanned: 19 days ago
Files 30
Artifacts 12
Violations 4
Findings 5
Most direct threat evidence
01
用户上传婴儿监控视频触发技能 Entry · SKILL.md
02
技能读取环境变量获取用户身份 Escalation · skills/smyx_common/scripts/config.py
03
视频和身份信息被上传至外部API Escalation · skills/smyx_analysis/scripts/skill.py

Why this conclusion was reached

2/4 dimensions flagged
Block
Declared vs actual capability

4 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

12 lower-risk artifacts were extracted and still need context.

Block
Attack chain and severe findings

The report includes 4 attack-chain steps and 0 severe findings.

Review
Dependencies and supply chain hygiene

1 dependency or supply-chain issues need attention.

Attack Chain

01
用户上传婴儿监控视频触发技能

Entry · SKILL.md:1

02
技能读取环境变量获取用户身份

Escalation · skills/smyx_common/scripts/config.py:132

03
视频和身份信息被上传至外部API

Escalation · skills/smyx_analysis/scripts/skill.py:75

04
用户凭证和监控数据存储于外部服务器

Impact · config.yaml:3

What drove the risk score up

未声明的数据库操作 +15

本地SQLite数据库存储用户token和身份信息,SKILL.md未提及

身份凭证外传 +10

OPENCLAW_SENDER_OPEN_ID等环境变量被读取并发送至外部API

敏感媒体数据外传 +8

婴儿监控视频上传至外部服务器lifeemergence.com

注释代码存在RCE风险 +5

skill.py中ai_chat()方法包含subprocess调用,虽已注释但代码仍存在

Most important evidence

Medium Data Exfil

用户身份凭证发送至外部服务器

技能读取环境变量OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID并发送至外部API端点lifeemergence.com,这些凭证用于用户身份认证但未在文档中声明

skills/smyx_common/scripts/config.py:132
在SKILL.md中明确声明凭证处理方式,添加隐私政策和数据保留说明
Medium Sensitive Access

未声明的本地数据库存储

技能使用SQLAlchemy ORM在本地创建并操作SQLite数据库(smyx-common-claw.db),存储用户token、open_token等敏感信息,未在文档中声明

skills/smyx_common/scripts/dao.py:50
文档化数据库存储行为,说明数据存储位置和保留期限
Medium Data Exfil

婴儿监控媒体数据上传外部服务器

用户上传的婴儿睡眠监控视频被发送至外部API服务进行AI分析,数据流向未在SKILL.md中明确说明

skills/smyx_analysis/scripts/skill.py:75
在SKILL.md中添加数据处理说明,明确视频数据的存储位置和保留期限
Low RCE

注释掉的subprocess远程执行代码

skills/smyx_common/scripts/skill.py中的AgentSkill.ai_chat()方法包含通过subprocess调用openclaw agent的代码,虽然已注释禁用,但代码仍存在形成潜在攻击面

skills/smyx_common/scripts/skill.py:38
删除已禁用的subprocess代码,避免代码冗余和潜在安全风险
Low Priv Escalation

API密钥硬编码在配置中

config.yaml包含App-ID等配置信息,这些凭证与外部服务关联,应使用更安全的密钥管理方式

skills/smyx_common/scripts/config.yaml:3
使用环境变量或密钥管理系统存储敏感配置

Declared capability vs actual capability

Filesystem Block
Declared READ
→
Inferred WRITE
skills/smyx_analysis/scripts/skill.py:75 file_content写入本地文件
Network Block
Declared READ
→
Inferred READ+WRITE
skills/smyx_common/scripts/util.py:200 上传视频文件到外部API
Environment Block
Declared NONE
→
Inferred READ
skills/smyx_common/scripts/config.py:132 读取OPENCLAW_SENDER_OPEN_ID等环境变量
Database Block
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py:50 创建并写入SQLite数据库

Suspicious artifacts and egress

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

SKILL.md:32

Medium External URL
https://clawhub.ai/user/smyx-sunjinhui

skill-card.md:9

Medium External URL
https://clawhub.ai/smyx-sunjinhui/skills/smyx-infant-blanket-kick-monitoring-analysis

skill-card.md:39

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 主技能依赖,无版本锁定风险
pydash 8.0.6 pip No smyx_analysis依赖
SQLAlchemy 2.0.46 pip No 数据库ORM
PyYAML 6.0.3 pip No 配置文件解析

File composition

30 files · 2665 lines
Python 18 files · 2357 linesMarkdown 4 files · 273 linesYAML 6 files · 29 linesText 2 files · 6 lines
Files of concern · 6
skills/smyx_common/scripts/config.py Python · 399 lines
用户身份凭证发送至外部服务器
skills/smyx_common/scripts/dao.py Python · 499 lines
未声明的本地数据库存储
SKILL.md Markdown · 173 lines
https://lifeemergence.com/sample.html
skills/smyx_analysis/scripts/skill.py Python · 175 lines
婴儿监控媒体数据上传外部服务器
skill-card.md Markdown · 60 lines
https://clawhub.ai/user/smyx-sunjinhui · https://clawhub.ai/smyx-sunjinhui/skills/smyx-infant-blanket-kick-monitoring-analysis
skills/smyx_common/scripts/skill.py Python · 85 lines
注释掉的subprocess远程执行代码
Other files · util.py · smyx_analysis.py · infant_blanket_kick_monitoring_analysis.py · api_service.py · api_service.py · config.py

Security positives

核心功能(婴儿蹬被监测)与声明用途一致
外部通信使用HTTPS协议
支持文件格式限制(mp4/avi/mov,最大10MB)
数据库路径强制重定向到工作区data目录,防止污染主Agent
用户身份参数自动处理,不直接向用户暴露