安全决策报告

smyx-chinese-herbal-ingredient-trend-analysis

中草药有效成分趋势分析技能,代码行为符合声明功能,存在轻微文档-实现不一致(用户身份自动管理未声明)和小版本锁定缺失,属轻微瑕疵但不影响安全。

安装决策优先 来源: ClawHub 扫描时间: 2026/9/9
文件 30
IOC 12
越权项 0
发现 3

为什么得出这个结论

0/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

复核
隐藏执行与外联

提取到 12 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

没有形成明确的恶意路径。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

用户身份自动管理阴影功能 +10

OpenIdUtil 类自动生成/读取/管理用户标识符,SKILL.md 未声明此行为

依赖版本未锁定 +5

requirements.txt 使用 requests>=2.28.0 无版本上限

文档与代码的微小不一致 +5

SKILL.md 描述叶片分析但实际支持图片+视频,API端点引用 lifeemergence.com 未显式列出

最关键的证据

低危 文档欺骗

用户身份自动管理机制未声明

OpenIdUtil 类实现自动用户身份生成和管理逻辑:从环境变量、data/smyx-api-key.txt、本地 SQLite 数据库读取或生成用户标识符,并在后续 API 请求中作为身份标识使用。此机制在 SKILL.md 中无任何说明。

skills/smyx_common/scripts/util.py:238
在 SKILL.md 中补充说明:技能会自动管理内部用户身份,用于关联历史报告查询,不向用户暴露身份值。
低危 供应链

依赖版本未锁定

skills/smyx_analysis/requirements.txt 和 skills/smyx_common/requirements.txt 中 requests 使用 >=2.28.0 无版本上限,可能拉取存在安全漏洞的版本。

skills/smyx_analysis/requirements.txt:1
建议锁定版本上限,如 requests>=2.28.0,<2.32.0
提示 敏感访问

读取工作区环境变量

技能读取 OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID 等环境变量用于身份关联。

skills/smyx_common/scripts/config.py:127
此行为合理,用于多Agent系统中的身份传递,建议在文档中说明。

声明能力 vs 实际能力

文件系统 通过
声明 WRITE
→
推断 WRITE
SKILL.md:97 声明附件保存,scripts/smyx_analysis.py:84 执行文件写入
网络访问 通过
声明 READ
→
推断 READ
SKILL.md:47 声明云端API查询,util.py:367 执行 HTTPS 请求到 lifeemergence.com
环境变量 通过
声明 NONE
→
推断 READ
config.py:127 读取 OPENCLAW_SENDER_OPEN_ID/OPENCLAW_SENDER_USERNAME
数据库 通过
声明 NONE
→
推断 WRITE
dao.py:89 创建 SQLite 数据库存储用户 token,SKILL.md 未声明本地存储

可疑产物与外联

中危 外部 URL
https://lifeemergence.com/sample.html

SKILL.md:40

中危 外部 URL
https://clawhub.ai/user/18072937735

skill-card.md:9

中危 外部 URL
https://clawhub.ai/18072937735/skills/smyx-chinese-herbal-ingredient-trend-analysis

skill-card.md:43

中危 外部 URL
http://192.168.1.234:9601/smyx-open-api

skills/smyx_common/scripts/config-dev.yaml:2

中危 外部 URL
http://192.168.1.234:4100

skills/smyx_common/scripts/config-dev.yaml:3

中危 外部 URL
http://192.168.1.234:7070/jeecg-boot-xzgz

skills/smyx_common/scripts/config-dev.yaml:4

中危 外部 URL
https://livemonitortest.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config-test.yaml:2

中危 外部 URL
http://livemonitortest.lifeemergence.com

skills/smyx_common/scripts/config-test.yaml:3

中危 外部 URL
https://healthtest.lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config-test.yaml:4

中危 外部 URL
https://lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config.yaml:4

中危 外部 URL
https://open.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config.yaml:5

中危 外部 URL
http://livemonitor.lifeemergence.com

skills/smyx_common/scripts/config.yaml:6

依赖与供应链

包名版本来源漏洞备注
requests >=2.28.0 pip 否 无版本上限锁定
pyyaml 未指定 pip 否 可能通过 transitives 引入
sqlalchemy 未指定 pip 否 本地 SQLite ORM

文件构成

30 个文件 · 2681 行
Python 18 个文件 · 2363 行Markdown 4 个文件 · 283 行YAML 6 个文件 · 29 行Text 2 个文件 · 6 行
需关注文件 · 4
skills/smyx_common/scripts/util.py Python · 718 行
用户身份自动管理机制未声明
skills/smyx_common/scripts/config.py Python · 399 行
读取工作区环境变量
SKILL.md Markdown · 180 行
https://lifeemergence.com/sample.html
skill-card.md Markdown · 64 行
https://clawhub.ai/user/18072937735 · https://clawhub.ai/18072937735/skills/smyx-chinese-herbal-ingredient-trend-analysis
其他文件 · dao.py · skill.py · smyx_analysis.py · smyx_chinese_herbal_ingredient_trend_analysis.py · api_service.py · skill.py +2

安全亮点

未发现恶意指标:无 base64 编码执行、无命令注入、无反向 shell
未发现凭证收割行为:token 仅存储于本地 SQLite,不外传
网络请求范围可控:仅与声明的 API 服务 lifeemergence.com 通信
工作区隔离机制完善:AgentContextUtil 防止数据污染
未访问敏感路径:无 ~/.ssh、~/.aws、.env 等敏感文件访问
代码结构清晰:业务逻辑与通用库分离,可审计性好