Skill Trust Decision

yqzl-ai-service

云启智联AI服务技能将用户财务票据(银行回单、发票等)发送至硬编码IP服务器,存在数据外泄风险。自动升级机制可被利用进行供应链攻击,API Key加密方案强度不足。

Install decision first Source: ClawHub Scanned: Jun 21, 2026
Files 18
Artifacts 6
Violations 2
Findings 5
Most direct threat evidence
01
用户通过 SKILL.md 了解服务为合法OCR工具 Entry · SKILL.md
02
用户上传银行回单/发票等财务文件进行分析 Escalation · scripts/api_client.py
03
文件通过 POST 请求发送至外部 IP 8.135.62.13:5000 Impact · scripts/api_client.py

Why this conclusion was reached

3/4 dimensions flagged
Block
Declared vs actual capability

2 undeclared or violating capabilities were inferred.

Block
Hidden execution and egress

1 high-risk artifacts or egress signals were extracted.

Block
Attack chain and severe findings

The report includes 6 attack-chain steps and 2 severe findings.

Review
Dependencies and supply chain hygiene

2 dependency or supply-chain issues need attention.

Attack Chain

01
用户通过 SKILL.md 了解服务为合法OCR工具

Entry · SKILL.md:1

02
用户上传银行回单/发票等财务文件进行分析

Escalation · scripts/api_client.py:138

03
文件通过 POST 请求发送至外部 IP 8.135.62.13:5000

Impact · scripts/api_client.py:173

04
攻击者获取财务数据(账号、交易金额、交易对手)

Impact · 外部服务器

05
自动升级机制下载并覆盖技能文件

Escalation · scripts/updater.py:97

06
攻击者通过升级通道植入恶意代码

Impact · 外部服务器

What drove the risk score up

硬编码外部IP服务器 +20

SKILL.md:3等多处硬编码 8.135.62.13:5000,无域名,声称合法服务但使用裸IP可疑

财务票据数据外传 +15

用户银行回单、发票等敏感财务文件通过 POST 请求发送至外部IP,无明确数据保护声明

自动升级可覆盖文件 +10

updater.py 支持从远程下载并覆盖当前技能文件,无代码签名验证

API Key加密方案弱 +5

config_manager.py 使用 machine_id 派生密钥,攻击者若知机器信息可解密

第三方依赖无版本锁定 +5

requests、cryptography 库无版本约束,存在供应链风险

Most important evidence

High Data Exfil

财务票据数据发送至外部IP

用户上传的银行回单、发票、对账单等敏感财务文件通过 POST 请求发送至硬编码IP 8.135.62.13:5000。SKILL.md未明确说明数据流向和保护措施,财务数据外泄风险高。

scripts/api_client.py:24
使用域名而非裸IP;明确数据存储和处理政策;增加端到端加密
High Supply Chain

自动升级机制无代码签名验证

updater.py 从 ClawHub 下载 ZIP 包并直接解压覆盖当前技能文件,未验证签名或哈希。攻击者若入侵下载源或中间人攻击可植入恶意代码。

scripts/updater.py:97
实现代码签名验证;使用 HTTPS + 证书 pinning;添加更新包哈希校验
Medium Credential Theft

API Key加密方案依赖机器信息

config_manager.py 使用 platform.node() 和 getpass.getuser() 派生加密密钥。攻击者若获取机器名和用户名可本地解密 API Key。

scripts/config_manager.py:38
使用更强密钥派生函数(如 PBKDF2);增加用户自定义密码保护
Medium Doc Mismatch

硬编码IP替代域名不合常规

SKILL.md 多次出现硬编码IP 8.135.62.13 而非域名。合法商业服务通常使用域名便于维护和 CDN 加速,裸IP常见于临时或规避检测场景。

SKILL.md:3
要求使用域名并验证 TLS 证书
Low Supply Chain

第三方依赖无版本锁定

requirements.txt 或依赖声明中 requests、cryptography 等库无版本约束,可能引入恶意或漏洞版本。

scripts/api_client.py:14
在 requirements.txt 中锁定版本,如 requests>=2.28.0,<3.0.0

Declared capability vs actual capability

Filesystem Block
Declared READ
Inferred WRITE
scripts/updater.py:104 shutil.copytree 覆盖技能目录文件
Network Block
Declared READ
Inferred WRITE
scripts/api_client.py:24 所有接口调用 POST 到 8.135.62.13:5000
Shell Pass
Declared NONE
Inferred NONE
未发现直接 shell 执行

Suspicious artifacts and egress

High IP Address
8.135.62.13

SKILL.md:3

Medium External URL
http://8.135.62.13:5000/AIService/experience/page

SKILL.md:3

Medium External URL
http://8.135.62.13:5000/

SKILL.md:67

Medium External URL
http://8.135.62.13:5000/AIService

backup/v1.0.0_20260612_180227/scripts/api_client.py:25

Medium External URL
http://8.135.62.13:5000/static/skills/yqzl-ai-service/latest.json

backup/v1.0.0_20260612_180227/scripts/updater.py:26

Medium External URL
https://wry-manatee-359.convex.site/api/v1/download?slug=yqzl-ai-service

scripts/updater.py:26

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
requests * pip No 无版本锁定
cryptography * pip No 无版本锁定

File composition

18 files · 3534 lines
Python 9 files · 2891 linesMarkdown 3 files · 431 linesJSON 2 files · 206 linesOther 3 files · 3 linesText 1 files · 3 lines
Files of concern · 6
scripts/api_client.py Python · 1110 lines
财务票据数据发送至外部IP · 第三方依赖无版本锁定
SKILL.md Markdown · 183 lines
硬编码IP替代域名不合常规 · 8.135.62.13 · http://8.135.62.13:5000/AIService/experience/page · http://8.135.62.13:5000/
scripts/updater.py Python · 347 lines
自动升级机制无代码签名验证 · https://wry-manatee-359.convex.site/api/v1/download?slug=yqzl-ai-service
backup/v1.0.0_20260612_180227/scripts/updater.py Python · 305 lines
http://8.135.62.13:5000/static/skills/yqzl-ai-service/latest.json
backup/v1.0.0_20260612_180227/scripts/api_client.py Python · 227 lines
http://8.135.62.13:5000/AIService
scripts/config_manager.py Python · 128 lines
API Key加密方案依赖机器信息
Other files · updater.py · async_result.json · api_client.py · SKILL.md · SKILL.md · config_manager.py

Security positives

API Key 本地加密存储(虽方案较弱但有加密意识)
升级前有备份机制
支持游客体验模式无需 API Key(适合测试)
代码结构清晰,主要功能正常