CVE-2025-10041CVE-2025-10041是WordPress平台上一款名为Flex QR Code Generator的插件中存在的高危安全漏洞。该插件是一款用于在WordPress网站中生成二维码的工具,安装量较大。漏洞存在于插件的save_qr_code_to_db()函数中,由于缺乏对上传文件类型的有效验证,攻击者可以利用该漏洞上传任意类型的文件到目标服务器。由于此漏洞无需任何身份认证即可利用,且CVSS评分高达9.8分,被评定为严重级别。
该漏洞的危害程度极高,攻击者可以通过上传恶意文件(如WebShell)实现远程代码执行(RCE),从而完全控制受影响的WordPress网站。一旦网站被攻陷,攻击者可以窃取敏感数据、植入后门、进行挖矿活动、将恶意软件分发给访问者,甚至利用受感染服务器作为跳板攻击其他系统。考虑到该漏洞的利用门槛极低(无需认证),且影响所有1.2.5及以下版本,使用此插件的网站管理员应立即采取行动进行修复。
该漏洞由Wordfence安全团队的安全研究员发现并报告,披露日期为2025年10月15日。作为WordPress生态系统中常见的漏洞类型之一,任意文件上传漏洞一直是黑客攻击WordPress网站的主要途径之一,本漏洞再次凸显了第三方插件对WordPress网站安全的重要性。
Flex QR Code Generator插件的save_qr_code_to_db()函数负责处理用户上传的二维码图像并将其保存到数据库中。然而,该函数在处理文件上传时存在严重的安全缺陷:
1. **缺失文件类型验证**:函数没有对上传文件的MIME类型、文件扩展名或文件内容进行充分验证,仅依赖客户端提供的Content-Type头信息。
2. **未限制文件扩展名**:攻击者可以上传.php、.phtml、.jsp等可执行脚本文件,这些文件将被保存在WordPress的uploads目录或插件特定目录中。
3. **未进行身份认证检查**:相关函数或调用入口未要求用户登录或具备特定权限,未认证的攻击者可以通过直接构造HTTP请求触发漏洞。
**利用方式**:
攻击者可以通过以下步骤利用此漏洞:
1. 定位目标网站中Flex QR Code Generator插件的REST API端点或AJAX处理接口(通常为wp-admin/admin-ajax.php或自定义REST路由)。
2. 构造包含恶意PHP代码的请求包,将文件扩展名伪装为图像格式(如.jpg或.png),但实际包含PHP代码。
3. 通过multipart/form-data方式上传文件,绕过客户端验证。
4. 服务器接收文件后将其保存到可访问的Web目录中。
5. 攻击者通过浏览器访问上传的恶意文件URL,触发其中的PHP代码执行,实现远程代码执行。
由于漏洞利用无需认证且复杂度低,攻击者可以编写自动化脚本批量扫描和攻击暴露在互联网上的WordPress网站。