CVE-2026-4261WordPress Expire Users插件在1.2.2及之前的所有版本中存在严重的权限提升漏洞。该漏洞源于插件未能对`save_extra_user_profile_fields`函数进行安全加固,允许用户直接更新`on_expire_default_to_role`元数据。由于缺乏必要的权限验证,仅拥有订阅者级别权限的攻击者即可利用此缺陷,通过发送恶意请求将自己提升为管理员。一旦攻击成功,攻击者将获得网站的最高控制权,可能导致数据泄露或网站被完全破坏。
该漏洞的核心在于WordPress Expire Users插件中的`save_extra_user_profile_fields`函数未正确实施权限检查。在WordPress生态系统中,插件通常通过挂载到`profile_update`或`personal_options_update`钩子来处理用户资料更新。在该插件受影响的版本中,当用户更新个人资料时,该函数会直接从POST请求中获取`on_expire_default_to_role`参数的值,并通过`update_user_meta`函数将其保存到数据库中,而没有验证当前用户是否具备修改用户角色或该特定元数据的权限(如`edit_users`能力)。攻击者只需拥有一个最低权限的账户(如订阅者),即可利用此漏洞。通过构造包含恶意参数的POST请求发送至`/wp-admin/user-edit.php`或`/wp-admin/profile.php`,攻击者可以将该元数据设置为`administrator`。随后,当插件逻辑读取该元数据以确定用户角色时(例如在登录检查或过期处理逻辑中),系统会将攻击者识别为管理员,从而实现权限提升。