CVE-2025-12182Qi Blocks是WordPress的一个流行页面构建器插件,广泛用于创建各种类型的网站页面。该插件在1.4.3及之前版本中存在严重的访问控制缺陷,攻击者可利用此漏洞绕过权限检查,对其他用户的媒体库图片进行非法操作。漏洞根源在于resize_image_callback()函数缺少必要的权限验证机制,允许任何具有Contributor权限的认证用户对任意图片执行调整大小操作。攻击成功后可能导致服务器磁盘空间被大量无用图片文件填满,造成存储资源耗尽;同时大量图片处理操作会消耗服务器CPU和内存资源,引发拒绝服务风险。此漏洞需要攻击者拥有WordPress网站的有效账号(至少Contributor角色),但攻击门槛相对较低,危害范围较广。
该漏洞属于典型的Broken Access Control(访问控制失效)类型,存在于WordPress插件Qi Blocks的媒体处理模块中。具体漏洞点位于inc/media/class-qi-blocks-media.php文件的第138行resize_image_callback()函数。该函数负责处理图片调整大小的请求,但未对请求发起者的权限进行充分验证。
漏洞利用过程:攻击者首先需要注册一个WordPress账号并获取至少Contributor角色权限。Contributor角色在WordPress中通常只能撰写和管理自己的文章,但无法直接操作其他用户的媒体文件。然而,由于resize_image_callback()函数缺少current_user_can()或类似权限检查,攻击者可以通过构造特定的AJAX请求(通常为wp_ajax_*钩子),指定目标图片的attachment ID和期望的尺寸参数来触发图片调整功能。
攻击者可以指定任意媒体库中的图片(即使该图片属于管理员或其他用户),并设置极大的图片尺寸参数。这会导致WordPress生成大量图片文件副本,快速消耗服务器磁盘空间。同时,图片处理是一个CPU密集型操作,大量并发请求会造成服务器资源耗尽。
修复方案是在resize_image_callback()函数中添加权限检查逻辑,确保只有图片所有者或具有更高级别权限的用户才能执行图片调整操作。