安全决策报告

gpt-image-2

图片生成技能将用户访问密钥和提示词通过明文HTTP发送至未披露的硬编码IP服务器,SKILL.md明确要求隐藏服务器地址,构成文档-行为差异。

安装决策优先 来源: ClawHub 扫描时间: 2026/6/24
文件 4
IOC 4
越权项 1
发现 5
最直接的威胁证据
01
用户安装技能后被要求提供访问密钥 初始入口 · SKILL.md
02
密钥和图片提示词通过明文HTTP发送至未披露的外部IP服务器 权限提升 · scripts/generate_image.py
03
外部服务器记录用户凭证(密钥+使用习惯),可能用于未授权访问或画像分析 最终危害 · scripts/generate_image.py

为什么得出这个结论

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

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

阻止
隐藏执行与外联

提取到 1 个高危 IOC 或外联信号。

阻止
攻击链与高危发现

报告包含 3 步攻击链,另有 2 项高危或严重发现。

复核
依赖与供应链卫生

发现 1 项需要关注的依赖或供应链线索。

攻击链

01
用户安装技能后被要求提供访问密钥

初始入口 · SKILL.md:10

02
密钥和图片提示词通过明文HTTP发送至未披露的外部IP服务器

权限提升 · scripts/generate_image.py:23

03
外部服务器记录用户凭证(密钥+使用习惯),可能用于未授权访问或画像分析

最终危害 · scripts/generate_image.py:21

风险分是怎么被拉高的

文档要求隐藏服务器地址 +15

SKILL.md: '不要向用户透露服务器地址',但代码硬编码IP 124.156.166.147,构成阴影功能

凭证通过明文HTTP外发 +15

用户访问密钥和提示词通过未加密HTTP POST到外部IP,无TLS保护

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

requests 库无版本锁定,存在供应链更新风险

主动披露风险但仍存在问题 +-5

skill-card.md承认了'undisclosed unencrypted HTTP'风险并列出缓解措施,态度相对透明

功能本身相对简单 +-5

代码仅调用API并保存图片,无命令注入、无混淆代码、无遍历敏感路径

最关键的证据

高危 文档欺骗

SKILL.md要求隐藏服务器地址,代码却硬编码外部IP

SKILL.md第62行明确要求'不要向用户透露服务器地址、API 密钥等任何后端信息',但scripts/generate_image.py第21行硬编码了IP地址124.156.166.147:8765。skill-card.md第19行承认这是'undisclosed unencrypted HTTP image service'。这是典型的文档-行为差异:文档禁止披露的信息正是实际行为的核心组件。

scripts/generate_image.py:21
要求发布者使用公开可验证的域名/HTTPS端点,停止使用不可追溯的裸IP
高危 凭证窃取

用户访问密钥通过明文HTTP发送至外部服务器

用户提供的IMGKEY-HK-XXXXXX格式访问密钥,通过HTTP(非HTTPS)请求头'x-access-key'发送至124.156.166.147。在网络传输层面无TLS加密保护,存在中间人攻击(MITM)窃取凭证风险。SKILL.md未披露该服务器地址,使得用户无法评估信任边界。

scripts/generate_image.py:23
必须使用HTTPS,并要求发布者提供服务器身份验证机制(如证书校验、域名白名单)
中危 供应链

requests依赖无版本锁定

脚本import requests但未指定版本号。requirements.txt不存在,pip install requests将拉取最新版本。虽然requests库本身目前无已知严重漏洞,但版本不稳定可能导致依赖混淆或未来引入漏洞。

scripts/generate_image.py:10
创建requirements.txt并锁定版本,如 requests==2.31.0
中危 敏感访问

图片保存至系统临时目录后未清理

生成的PNG图片默认保存到系统临时目录(/tmp/或%TEMP%),使用固定文件名'generated.png'。skill-card.md也承认'Generated PNG files may remain in the system temporary directory'。临时文件长期留存存在信息泄露风险。

scripts/generate_image.py:57
生成后主动删除临时文件,或使用安全的临时文件机制(tempfile.NamedTemporaryFile)
低危 文档欺骗

脚本文件名暗示使用GPT模型但实际调用的服务与GPT无关

SKILL.md和_meta.json使用名称'gpt-image-2'和描述'使用 gpt-image-2 模型',但代码中实际调用的是位于124.156.166.147的私有API服务器,没有任何GPT模型标识。名称具有误导性,可能让用户误以为使用了OpenAI的GPT-4o image generation服务。

SKILL.md:1
使用准确的服务名称,不要借用知名品牌的名称

声明能力 vs 实际能力

文件系统 通过
声明 WRITE
推断 WRITE
scripts/generate_image.py:58 写入PNG到output路径,SKILL.md声明保存到系统临时目录
网络访问 阻止
声明 READ
推断 WRITE
scripts/generate_image.py:21 硬编码IP服务器,requests.post发送JSON(含key+prompt),SKILL.md未披露该IP
命令执行 通过
声明 NONE
推断 NONE
无subprocess.run等shell执行,脚本为纯API客户端
环境变量 通过
声明 NONE
推断 NONE
无os.environ遍历或敏感变量访问
剪贴板 通过
声明 NONE
推断 NONE
无剪贴板操作
浏览器 通过
声明 NONE
推断 NONE
无浏览器自动化
数据库 通过
声明 NONE
推断 NONE
无数据库操作
技能调用 通过
声明 NONE
推断 NONE
无跨skill调用

可疑产物与外联

高危 IP 地址
124.156.166.147

scripts/generate_image.py:21

中危 外部 URL
http://124.156.166.147:8765

scripts/generate_image.py:21

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

skill-card.md:7

中危 外部 URL
https://clawhub.ai/kiribon43567/gpt-image-2

skill-card.md:29

依赖与供应链

包名版本来源漏洞备注
requests * pip 无版本锁定,存在供应链更新风险

文件构成

4 个文件 · 212 行
Markdown 2 个文件 · 108 行Python 1 个文件 · 99 行JSON 1 个文件 · 5 行
需关注文件 · 3
scripts/generate_image.py Python · 99 行
SKILL.md要求隐藏服务器地址,代码却硬编码外部IP · 用户访问密钥通过明文HTTP发送至外部服务器 · requests依赖无版本锁定 · 图片保存至系统临时目录后未清理 · 124.156.166.147 · http://124.156.166.147:8765
SKILL.md Markdown · 66 行
脚本文件名暗示使用GPT模型但实际调用的服务与GPT无关
skill-card.md Markdown · 42 行
https://clawhub.ai/user/kiribon43567 · https://clawhub.ai/kiribon43567/gpt-image-2
其他文件 · _meta.json

安全亮点

skill-card.md主动披露了'undisclosed unencrypted HTTP'风险,态度相对透明
代码逻辑简洁清晰,无复杂混淆、无base64解码执行
无命令注入漏洞,脚本仅作为API客户端
无遍历环境变量或访问~/.ssh等敏感路径
有clawhub.ai发布者主页,具有一定可追溯性