CVE-2025-12847All in One SEO是一款广受欢迎的WordPress SEO优化插件,全球拥有数百万安装量。该插件在4.8.9及之前版本中存在严重的访问控制缺陷,攻击者可以利用REST API端点未经授权删除任意媒体附件。漏洞根源在于`/wp-json/aioseo/v1/ai/image-generator`端点仅验证用户是否具有`edit_posts`权限(Contributor及以上角色),却未检查用户是否拥有目标媒体附件的所有权或删除权限。这意味着任何具有Contributor权限的认证用户都可以永久删除站点上的任意媒体文件,包括其他用户上传的重要图片、文档等附件资源。攻击者只需获取有效的附件ID即可触发删除操作,无需任何用户交互。此漏洞对网站完整性造成威胁,攻击者可利用此漏洞删除网站关键媒体资源,导致内容丢失或网站功能受损。
漏洞存在于All in One SEO插件的REST API处理逻辑中。具体来说,问题出在以下几个关键文件:Image.php处理图片生成逻辑、Api.php处理API请求路由、Access.php处理权限验证。问题代码仅检查用户是否具有`edit_posts`能力,该能力通常授予Contributor及以上角色,但未实现资源级别的权限验证。攻击流程如下:1) 攻击者以Contributor或更高权限账户登录WordPress;2) 构造DELETE请求到`/wp-json/aioseo/v1/ai/image-generator`端点;3) 在请求参数中指定目标媒体附件ID;4) 由于端点未验证附件所有权,请求被直接处理;5) 附件被永久删除且无法恢复。攻击者可以通过枚举或猜测附件ID来批量删除媒体资源。该漏洞属于OWASP Top 10中的Broken Access Control类别,是当前Web应用中最常见的安全问题之一。