CVE-2025-14802CVE-2025-14802是WordPress最受欢迎的在线课程管理插件LearnPress中的一个高危安全漏洞。该漏洞存在于插件的REST API端点中,允许具有教师级别权限的认证用户删除服务器上任意课程材料文件。漏洞的根本原因在于API授权检查逻辑与实际删除操作使用了不同的参数:删除操作使用URL路径中的file_id,而授权检查却验证请求体中的item_id。这种参数不匹配导致攻击者可以通过构造特定的HTTP请求,在通过自己的item_id授权验证的同时,指定目标文件的file_id进行删除操作。由于课程材料文件通常存储在WordPress上传目录中,攻击成功可能导致其他教师上传的重要教学资源被永久删除,造成数据丢失和教学中断。
漏洞存在于LearnPress插件的REST API v1控制器中,具体路径为inc/rest-api/v1/frontend/class-lp-rest-material-controller.php。问题出在DELETE操作的实现上:当客户端发送DELETE请求到/wp-json/lp/v1/material/{file_id}端点时,服务器从URL路径提取目标文件的file_id进行删除操作。然而,插件的权限回调函数checkPermission()在验证用户权限时,却从HTTP请求体中读取item_id参数进行检查。由于file_id和item_id可以被独立控制,攻击者可以提交一个DELETE请求,在URL中指定目标文件的ID(file_id),同时在请求体中携带自己的item_id来通过权限验证。插件的授权逻辑错误地认为用户只能删除自己拥有的文件,实际上通过参数混淆,攻击者能够删除任意教师的文件资源。该漏洞属于OWASP API安全Top 10中的API6:2023 - Mass Assignment类别。