安全决策报告

psychological-stress-assessment-analysis

心理压力评估技能,代码实现为云端API调用工具,凭证管理通过本地数据库实现,但缺少必要的权限声明和敏感操作文档说明。

安装决策优先 来源: ClawHub 扫描时间: 2026/8/20
文件 29
IOC 10
越权项 4
发现 3

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 4 项声明之外的能力或越权行为。

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

通过
依赖与供应链卫生

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

风险分是怎么被拉高的

未声明本地数据库操作 +8

OpenIdUtil创建本地SQLite数据库smyx-common-claw.db存储用户凭证,SKILL.md未提及

未声明外部凭证传输 +7

RequestUtil.http_request将token/open_token发送到外部API,文档未说明

开发环境内网IP暴露 +5

config-dev.yaml包含192.168.1.234等内网地址

最关键的证据

中危 文档欺骗

本地用户身份管理未声明

OpenIdUtil类实现了完整的用户身份生命周期管理:生成默认用户名(User_xxxxxx)、读写本地数据库、持久化token。SKILL.md仅说'系统内部自动处理',未提及本地数据库创建和凭证存储行为。

skills/smyx_common/scripts/util.py:280
在SKILL.md的'前置准备'或'资源索引'章节补充说明:本技能需要本地数据库存储会话信息,路径为工作区data/smyx-common-claw.db
中危 敏感访问

凭证自动注册机制暴露手机号处理

RequestUtil._get_or_create_user函数在认证失败时会自动调用/sys/phoneLogin接口,使用username作为mobile参数进行静默注册,可能涉及手机号处理逻辑。

skills/smyx_common/scripts/util.py:160
确认username参数来源,确保不意外将用户手机号作为mobile提交。建议仅在明确用户同意的情况下使用静默注册。
低危 供应链

requests依赖无版本上限

requirements.txt中requests>=2.28.0只有下限没有上限,可能安装到存在已知漏洞的更新版本。

scripts/psychological_stress_assessment_analysis.py:10
建议锁定版本上限,如requests>=2.28.0,<2.32.0

声明能力 vs 实际能力

文件系统 阻止
声明 NONE
→
推断 READ
scripts/psychological_stress_assessment_analysis.py:38-46 文件存在性和可读性检查
文件系统 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:53-54 创建SQLite数据库文件
网络访问 阻止
声明 NONE
→
推断 ADMIN
skills/smyx_common/scripts/util.py:200-210 携带X-Access-Token/X-Api-Key发送认证请求到外部API
数据库 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:150-180 UserDao实现完整的CRUD操作

可疑产物与外联

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

SKILL.md:36

中危 外部 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 否 无版本上限,可能安装到有漏洞版本
pydash ==8.0.6 pip 否 已锁定版本
SQLAlchemy ==2.0.46 pip 否 已锁定版本
PyYAML ==6.0.3 pip 否 已锁定版本

文件构成

29 个文件 · 2716 行
Python 18 个文件 · 2471 行Markdown 3 个文件 · 210 行YAML 6 个文件 · 29 行Text 2 个文件 · 6 行
需关注文件 · 3
skills/smyx_common/scripts/util.py Python · 718 行
本地用户身份管理未声明 · 凭证自动注册机制暴露手机号处理
SKILL.md Markdown · 170 行
https://lifeemergence.com/sample.html
scripts/psychological_stress_assessment_analysis.py Python · 210 行
requests依赖无版本上限
其他文件 · config.py · dao.py · skill.py · smyx_analysis.py · api_service.py · skill.py +3

安全亮点

代码结构清晰,使用标准Python库和SQLAlchemy ORM
依赖版本基本锁定(pydash==8.0.6, SQLAlchemy==2.0.46)
无subprocess/shell执行,无base64/eval混淆
数据库路径强制重定向到工作区data目录,不会污染系统目录
AgentContextUtil实现了工作区隔离,防止子Agent污染主Agent数据