漏洞概述
CVE-2025-68437是一个存在于Craft CMS中的服务器端请求伪造漏洞,影响版本包括5.0.0-RC1至5.8.20以及4.0.0-RC1至4.16.16。该漏洞通过GraphQL的save_<VolumeName>_Asset突变的_file输入参数的url字段,允许攻击者使服务器向任意远程位置获取内容,包括内部网络服务和云元数据端点。
技术细节
漏洞原理
当Craft CMS处理GraphQL的资产上传突变时,_file输入对象的url参数接收外部URL,服务器会主动向该URL发起请求获取内容,并将其保存为系统资产。由于缺乏对目标地址的有效验证和限制,攻击者可构造恶意请求:
- 内部服务探测:使用
http://127.0.0.1:80/index.php等本地地址 - 云元数据窃取:针对AWS、GCP、Azure等云平台的元数据端点
- 任意外部资源:强制服务器访问攻击者控制的任意外部URL
利用条件
成功利用此漏洞需要满足以下权限配置:
- 在目标卷中"编辑资产"的权限
- 在目标卷中"创建资产"的权限
- 使用的GraphQL架构中启用了上述权限
复现步骤
- 以管理员身份登录Craft CMS控制面板
- 创建或使用现有卷
- 在GraphQL架构中启用必要的资产管理权限
- 访问GraphiQL界面(如
http://craft.local/admin/graphiql) - 执行以下GraphQL突变(将
<VolumeName>替换为实际卷名):
|
|
影响分析
直接风险
- 内部网络暴露:绕过防火墙访问内部服务,进行网络侦察
- 云凭证泄露:从云元数据端点窃取IAM角色、服务账户令牌等敏感凭据
- 数据外泄:获取的内容保存为资产后可通过预览/下载功能访问
潜在后果
- 底层基础设施完全被攻陷
- 敏感数据大规模外泄
- 攻击链中的初始立足点
修复方案
官方补丁
Craft CMS团队已发布安全更新修复此漏洞:
- Craft 5:升级至5.8.21或更高版本
- Craft 4:升级至4.16.17或更高版本
- Craft 3.5.0+:应升级至最新Craft 4.16.17或5.8.21版本
更新记录
根据Craft CMS 5.x的更新日志,5.8.21版本专门修复了此SSRF漏洞(GHSA-x27p-wfqw-hfcc)。同时修复的还包括:
- 两个RCE漏洞(GHSA-255j-qw47-wjh5, GHSA-742x-x762-7383)
- 一个DoS漏洞(GHSA-v64r-7wg9-23pr)
- 一个信息泄露漏洞(GHSA-53vf-c43h-j2x9)
临时缓解措施
若无法立即更新,可考虑:
- 限制GraphQL接口的访问权限
- 在网络层限制出站连接
- 监控异常资产创建行为
漏洞分类
CVSS评分
- CVSS 4.0向量:CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
- 整体评分:5.0(中等严重性)
CWE分类
- CWE-918:服务器端请求伪造
参考信息
- GitHub安全公告:GHSA-x27p-wfqw-hfcc
- 修复提交:craftcms/cms@013db63
- NVD记录:CVE-2025-68437
- Craft CMS 5.x更新日志:5.8.21版本详情
总结
CVE-2025-68437是一个典型的GraphQL接口SSRF漏洞,突显了现代Web应用中对用户提供URL缺乏充分验证的安全风险。建议所有Craft CMS用户立即检查版本并应用安全更新,同时审查GraphQL权限配置,最小化攻击面。