CVE-2025-10726CVE-2025-10726是WordPress WPRecovery插件中存在的一个严重SQL注入漏洞。该漏洞影响该插件所有版本,最高至2.0版本(含)。该漏洞由WordPress安全公司Wordfence的安全研究员发现并报告,CVSS评分为9.1分,属于严重级别。
WPRecovery是一款用于WordPress网站备份和恢复的插件。由于该插件在处理用户输入参数时,未对用户提供的'data[id]'参数进行充分的转义处理,且在构建SQL查询时未使用参数化查询或预编译语句,导致攻击者可以通过构造恶意的SQL语句注入到原有查询中。由于该漏洞无需任何身份认证即可利用,且无需用户交互,攻击者可以通过网络远程发起攻击。
更为严重的是,该SQL注入的查询结果会被直接传递给PHP的`unlink()`函数。这意味着攻击者不仅可以通过SQL注入从数据库中提取敏感信息(如管理员凭据、用户数据等),还可以通过注入文件路径来删除服务器上的任意文件。这种组合利用方式使得该漏洞的危害程度大大增加,攻击者可能通过删除关键文件导致网站完全不可用,甚至可能通过删除安全相关文件来为进一步攻击创造条件。
该漏洞已于2025年10月3日公开披露,鉴于其严重性和利用难度较低,网站管理员应尽快检查并更新其WPRecovery插件。
该漏洞的核心问题在于WPRecovery插件的`delete_backup.php`和`index.php`文件中对用户输入参数处理不当。具体技术细节如下:
1. **注入点**:漏洞位于'data[id]'参数中。该参数在所有受影响的版本中均未经过适当的转义或验证,直接被拼接到SQL查询语句中。
2. **根本原因**:插件开发者使用了字符串拼接的方式构建SQL查询,而非使用WordPress推荐的`$wpdb->prepare()`方法进行参数化查询。这使得攻击者可以通过在参数中注入SQL语句片段(如单引号闭合、UNION SELECT等)来操控查询逻辑。
3. **利用方式**:由于无需认证(PR:N),攻击者可以直接向存在漏洞的端点发送包含恶意SQL的HTTP请求。典型Payload如:`data[id]=1' UNION SELECT '/path/to/target/file' -- `
4. **危险组合**:该漏洞的特殊之处在于SQL查询的结果会被直接传递给PHP的`unlink()`函数。`unlink()`是PHP中用于删除文件的函数。这意味着攻击者不仅可以通过SQL注入提取数据库中的敏感信息(如管理员密码哈希、用户邮箱等),还可以通过精心构造的UNION查询返回任意文件路径,从而触发`unlink()`删除服务器上的任意文件。这可能导致网站配置文件被删除、WordPress核心文件被破坏,甚至可能删除`.htaccess`等安全配置文件。
5. **影响范围**:由于漏洞存在于所有版本至2.0,攻击者无需复杂的绕过技巧即可利用。CVSS向量显示该漏洞对机密性影响为低(因为主要影响是文件删除而非数据窃取),但对完整性和可用性影响为高。