Skill Trust Decision

package-detection-analysis

合法的包裹检测云分析技能,核心功能为调用外部AI API分析监控图像/视频,但存在本地凭证存储、环境变量读取和未声明的调试模式等中等风险。

Install decision first Source: ClawHub Scanned: Aug 27, 2026
Files 30
Artifacts 12
Violations 2
Findings 6

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

12 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

skill-card.md 已知风险提到本地存储 token,但 SKILL.md 完全未提及,文档欺骗 +8

读取多个环境变量 +5

读取 OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID,SKILL.md 未声明

调试日志泄露敏感数据 +5

is_debug() 为 True 时打印完整 HTTP 请求/响应(包含 token 和 username)

Most important evidence

Medium Doc Mismatch

SKILL.md 与 skill-card.md 存在信息不对称

SKILL.md 仅描述包裹检测功能,但 skill-card.md 已知风险(Known Risks)明确提到:本技能静默管理云账户身份并将令牌存储在本地工作区数据库。SKILL.md 完全未声明这一行为。

skill-card.md:18
SKILL.md 应补充说明本技能会在本地 SQLite 数据库(data/smyx-common-claw.db)中存储云账户身份令牌。
Medium Sensitive Access

未声明的环境变量读取

skills/smyx_common/scripts/config.py 在 ConstantEnum.init() 中读取 OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID 环境变量,用于设置内部身份标识。SKILL.md 未声明这些环境变量访问行为。

skills/smyx_common/scripts/config.py:114
在 SKILL.md 中声明本技能读取的环境变量及其用途。
Medium Data Exfil

监控图片/视频被发送至外部云服务

用户提供的监控图像或视频文件会通过 multipart/form-data POST 到 open.lifeemergence.com AI 分析接口,media 会被云服务存储和处理。SKILL.md 中仅笼统提到'云端 API 查询',未明确说明用户上传的监控画面会被发送到外部。skill-card.md 明确列为已知风险。

skills/smyx_analysis/scripts/skill.py:50
在 SKILL.md 前置准备部分明确声明:所有上传的图片/视频将被发送至 lifeemergence.com 云服务,建议用户不要上传含个人隐私或高度敏感的监控画面。
Low Supply Chain

依赖包无版本上限锁定

SKILL.md 声明 requests>=2.28.0(无上限),smyx_analysis 和 smyx_common 的 requirements.txt 使用 pydash==8.0.6、SQLAlchemy==2.0.46、PyYAML==6.0.3(精确版本)。requests 无上限可能引入依赖混淆风险。

SKILL.md:65
为 requests 设置版本上限,如 requests>=2.28.0,<2.32.0。
Low Credential Theft

调试模式可能泄露敏感凭证

skills/smyx_common/scripts/util.py 中 is_debug() 在 Windows 或非 Linux 平台返回 True,开启后会将完整 HTTP 请求/响应打印到 stdout,包含 Authorization、X-Access-Token 等凭证信息。如果在日志聚合环境中使用,可能造成凭证泄露。

skills/smyx_common/scripts/util.py:33
在生产环境将 is_debug 强制设为 False;调试模式下对 headers 中的 token 值做脱敏处理(代码已有部分脱敏但不完整)。
Low Doc Mismatch

SKILL.md 包含无关描述内容

SKILL.md 在技能概览部分包含一段关于帕金森病(Parkinson's disease)患者运动特征监测的描述,明显与包裹检测功能无关,可能是从模板复制未清理的残留内容。

SKILL.md:13
清理 SKILL.md 中无关的医疗描述内容,保持文档与技能功能一致。

Declared capability vs actual capability

Filesystem Pass
Declared READ
→
Inferred READ
scripts/package_detection_analysis.py:42-50 读取本地图片/视频文件
Network Pass
Declared READ
→
Inferred READ+WRITE
skills/smyx_common/scripts/util.py:385 POST 图片到 open.lifeemergence.com
Environment Block
Declared NONE
→
Inferred READ
skills/smyx_common/scripts/config.py:114-118 读取 OPENCLAW_SENDER_OPEN_ID 等环境变量
Database Block
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py 创建/读写 SQLite 存储用户 token
Shell Pass
Declared NONE
→
Inferred NONE
无 subprocess/eval 调用

Suspicious artifacts and egress

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

SKILL.md:34

Medium External URL
https://clawhub.ai/user/18072937735

skill-card.md:9

Medium External URL
https://clawhub.ai/18072937735/skills/smyx-package-detection-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 SKILL.md 声明宽松版本,smyx_common 未在 requirements.txt 中列出
pydash 8.0.6 pip No 精确版本锁定
SQLAlchemy 2.0.46 pip No 精确版本锁定
PyYAML 6.0.3 pip No 精确版本锁定

File composition

30 files · 2666 lines
Python 18 files · 2357 linesMarkdown 4 files · 274 linesYAML 6 files · 29 linesText 2 files · 6 lines
Files of concern · 5
skills/smyx_common/scripts/util.py Python · 718 lines
调试模式可能泄露敏感凭证
skills/smyx_common/scripts/config.py Python · 399 lines
未声明的环境变量读取
SKILL.md Markdown · 174 lines
依赖包无版本上限锁定 · SKILL.md 包含无关描述内容 · https://lifeemergence.com/sample.html
skills/smyx_analysis/scripts/skill.py Python · 175 lines
监控图片/视频被发送至外部云服务
skill-card.md Markdown · 60 lines
SKILL.md 与 skill-card.md 存在信息不对称 · https://clawhub.ai/user/18072937735 · https://clawhub.ai/18072937735/skills/smyx-package-detection-analysis
Other files · dao.py · smyx_analysis.py · package_detection_analysis.py · api_service.py · skill.py · api_service.py +1

Security positives

未发现 subprocess/eval/exec 等代码执行调用
未发现 base64 解码、字符串动态执行等混淆技术
未发现对 ~/.ssh、~/.aws、.env 等典型敏感路径的直接访问
未发现明显的反向 shell 或 C2 通信模式
数据库路径强制重定向到工作区共享 data 目录,避免技能私有化数据库
依赖包使用精确版本锁定(smyx_analysis/smyx_common)
API 请求超时合理设置(120s),有 401 自动重试机制