CVE-2025-12512GenerateBlocks是WordPress的一个流行插件,用于提供设计块功能。该插件在2.1.2及之前版本中存在严重的信息泄露漏洞。漏洞根源在于插件注册的REST API路由(位于generateblocks/v1/meta/路径下)缺少对象级授权检查,仅使用current_user_can('edit_posts')进行权限验证,而这个权限被默认授予给Contributor等低权限角色。攻击者可以利用这一缺陷,通过API端点的get_user_meta_rest函数,传入任意用户ID和元键来获取该用户的敏感元数据。攻击者能够访问包括管理员在内的任何WordPress用户的个人身份信息,如姓名、邮箱、电话、地址等。在典型的WordPress + WooCommerce环境中,WooCommerce会将客户的敏感信息存储在用户元数据中,攻击者可以利用这些信息进行定向钓鱼攻击、账户接管预谋或实施其他隐私侵犯行为。
漏洞的核心问题在于GenerateBlocks插件的元数据处理函数(get_user_meta_rest)缺乏有效的访问控制机制。插件在注册REST API端点时,使用current_user_can('edit_posts')作为权限检查条件,这个检查仅确认用户是否有编辑帖子的权限,但不验证用户是否在请求自己的数据。具体来说,攻击者可以向generateblocks/v1/meta/下的任意端点发送GET请求,通过user_id参数指定目标用户ID,通过meta_key参数指定想要获取的元键名称。插件仅对少量密码类密钥实施了黑名单检查,但这个黑名单并不完善,许多敏感字段如billing_address、billing_phone、billing_email等都可以被成功获取。由于WordPress的user_meta表存储了用户的各种配置信息和业务数据,攻击者通过遍历用户ID可以收集大量用户信息。漏洞的利用不需要复杂的攻击技术,任何具有Contributor角色的合法用户都可以发起攻击。