CVE-2025-9209CVE-2025-9209是WordPress的RestroPress在线食品订购系统插件中存在的一个严重认证绕过漏洞,CVSS评分为9.8分,属于最高严重级别。该漏洞影响RestroPress插件3.0.0至3.1.9.2版本,由Wordfence安全团队的研究员发现并报告。
RestroPress是一款广泛使用的WordPress插件,主要用于餐饮行业构建在线订餐系统,允许餐厅管理菜单、订单、支付和配送等功能。由于其与用户账户、支付信息和个人数据的紧密关联,该插件在中小型餐饮企业中拥有大量用户群体。
该漏洞的根本原因在于插件通过WordPress的REST API端点/wp-json/wp/v2/users暴露了用户的私有令牌(private tokens)和API数据。这些敏感信息本应仅对认证用户或管理员可见,但由于插件的错误配置,任何未经认证的远程攻击者都可以通过简单的HTTP请求获取这些数据。攻击者获取到这些令牌后,可以利用它们伪造JWT(JSON Web Token)令牌,从而冒充任意用户身份登录,包括具有最高权限的管理员账户。
由于该漏洞无需认证即可利用,无需用户交互,且对机密性、完整性和可用性均产生高影响,因此被评定为严重级别。一旦被恶意利用,攻击者可以完全控制受影响的WordPress网站,包括篡改网站内容、安装恶意插件或后门、窃取用户数据、进行支付欺诈等。该漏洞已于2025年10月3日公开披露,建议所有使用受影响版本的用户立即更新插件。
CVE-2025-9209是一个典型的认证绕过漏洞,其技术原理涉及WordPress REST API的权限控制缺陷和JWT令牌伪造。
漏洞原理:
WordPress的REST API默认提供/wp-json/wp/v2/users端点用于列出用户信息。在正常配置下,该端点应仅返回公开的用户数据(如用户名、显示名称等),而不应暴露敏感信息。然而,RestroPress插件在实现过程中,将用户的私有令牌(用于API认证的密钥)和其他敏感API数据注册到了用户对象的元数据中,并通过该REST API端点暴露出来。
具体而言,插件在注册用户元数据(user meta)时,未正确设置show_in_rest参数为false,或未对敏感字段进行适当的权限检查。这导致以下信息被未认证访问者获取:
1. 用户的JWT认证密钥或签名密钥
2. 用户的API令牌
3. 其他用于身份验证的敏感凭据
利用方式:
1. 攻击者首先向目标网站的REST API端点发送GET请求:GET /wp-json/wp/v2/users
2. 从返回的JSON响应中提取管理员用户(通常是ID为1的用户)的私有令牌和API密钥
3. 使用获取到的密钥,按照JWT规范(HS256算法)伪造一个新的JWT令牌,payload中设置目标用户的ID
4. 使用伪造的JWT令牌进行后续认证请求,WordPress将验证该令牌并授予攻击者相应用户的权限
5. 攻击者以管理员身份登录后,可执行任意管理操作,包括创建新管理员账户、安装恶意代码、修改网站内容等
该漏洞的利用过程简单直接,不需要特殊工具,仅使用curl或浏览器即可完成,这大大增加了被大规模利用的风险。