CVE-2025-14629CVE-2025-14629是WordPress平台Alchemist Ajax Upload插件中的一个高危安全漏洞。该插件是一款用于WordPress的AJAX上传工具,允许用户通过异步方式上传媒体文件。然而,由于该插件在实现文件删除功能时缺少适当的能力检查(capability check),导致任何未经身份验证的用户都可以调用delete_file函数,删除服务器上任意WordPress媒体附件。
该漏洞的危险性在于它不需要任何认证,攻击者可以直接通过发送特制的HTTP请求来触发删除操作。攻击者可以利用此漏洞删除网站的关键媒体文件,包括图片、文档、视频等附件资源,这可能导致网站内容丢失、页面显示异常、SEO影响等一系列问题。在某些场景下,如果攻击者删除的是主题或插件依赖的关键资源,甚至可能导致整个网站功能受损。
该漏洞影响该插件的所有版本直至1.1版本。由于CVSS评分为5.3(中等严重程度),且攻击复杂度低、无需权限和用户交互,因此在实际环境中容易被利用。网站管理员应尽快采取修复措施,避免遭受恶意攻击。建议立即检查网站是否存在此插件,并评估是否需要继续使用或寻找替代方案。
该漏洞的根本原因在于WordPress插件开发过程中对AJAX端点的安全实现存在缺陷。在WordPress中,AJAX处理程序通常使用wp_ajax_和wp_ajax_nopriv_前缀来注册,其中wp_ajax_要求用户登录,而wp_ajax_nopriv_允许未登录用户访问。
Alchemist Ajax Upload插件的delete_file函数被注册为未认证可访问的AJAX端点,且该函数直接接收用户提交的参数(如文件ID或文件路径),而没有进行权限验证。WordPress的delete_attachment等函数本身是安全的,需要适当的权限检查,但插件直接调用这些函数时绕过了权限验证机制。
攻击者只需要构造一个POST请求到wp-admin/admin-ajax.php端点,设置action参数为插件定义的删除操作,并提供目标文件的标识符(通常是附件ID)。由于缺少current_user_can()检查,任何人都可以执行此操作。服务器会直接执行文件删除操作,将指定的媒体文件从uploads目录中物理删除,同时从数据库中移除相关记录。
防御此类漏洞的关键是在所有涉及数据修改的AJAX处理函数中,始终使用current_user_can()或current_user_can_for_blog()进行权限验证,确保只有具有适当权限的用户才能执行敏感操作。