CVE-2025-11372CVE-2025-11372是WordPress学习管理系统插件LearnPress中存在的一个高危安全漏洞。该漏洞存在于插件的管理工具REST API端点中,由于开发者在注册REST路由时将permission_callback设置为__return_true,导致所有请求都会被无条件授权通过,完全跳过了WordPress核心的用户身份验证和权限检查机制。
该漏洞影响LearnPress插件所有4.2.9.2及以下版本,允许未经认证的远程攻击者通过访问/wp-json/lp/v1/admin/tools/create-indexs端点执行破坏性数据库操作。攻击者无需任何凭证即可向该端点发送恶意请求,通过提供数据库表名参数,触发索引创建或重建操作。这些操作可能导致删除现有索引(包括WordPress核心表如wp_options上的索引)、创建重复的配置条目,以及通过大量无意义的索引操作降低数据库查询性能,最终导致网站性能严重下降甚至功能性故障。
该漏洞由Wordfence安全团队的研究员发现并报告,CVSS评分为6.5分,属于中危级别。尽管评分中等,但考虑到该插件在WordPress生态系统中拥有庞大的用户基础(用于构建在线课程和学习平台),且漏洞可被未认证攻击者远程利用,其实际威胁程度不容忽视。WordPress网站管理员应尽快检查并更新插件版本。
该漏洞的根本原因在于LearnPress插件在注册REST API路由时未正确实现权限验证。WordPress的REST API框架要求每个注册的路由都必须提供一个permission_callback函数,用于在请求处理之前检查用户是否有权访问该端点。
在LearnPress的inc/rest-api/v1/admin/class-lp-admin-rest-tools-controller.php文件中,开发者将管理工具相关端点(包括create-indexs)的permission_callback设置为WordPress内置的__return_true函数。__return_true是一个简单的回调函数,无论传入什么参数都始终返回布尔值true,这意味着REST API框架认为所有访问这些端点的请求都已通过权限验证。
技术利用路径如下:
1. 攻击者向目标WordPress站点的/wp-json/lp/v1/admin/tools/create-indexs端点发送POST请求;
2. REST API框架调用permission_callback(即__return_true),该函数直接返回true,权限检查被绕过;
3. 请求进入create_indexs回调函数,该函数处理传入的表名参数;
4. 在inc/Databases/class-lp-db.php的create_index方法中(第291行和第316行),插件对指定的数据库表执行索引操作;
5. 攻击者可以指定WordPress核心表(如wp_options),触发索引删除和重建,导致数据完整性受损和性能下降。
漏洞的修复通过commit cf940a437539a803e49136bdff7a53e1f2b2ca44完成,开发者将permission_callback替换为适当的权限检查函数,确保只有具有相应管理权限的用户才能调用这些端点。