Spree API 存在未授权 IDOR 漏洞 - 访客地址信息泄露 (CVE-2026-22589)漏洞详情严重性等级: 高危发布日期: 2026年1月8日最后更新: 2026年1月11日受影响的包:bundlerspree_core (RubyGems)受影响的版本: 4.0.0, 4.10.2 5.0.0, 5.0.7 5.1.0, 5.1.9 5.2.0, 5.2.5已修复的版本:4.10.25.0.75.1.95.2.5描述概述发现了一个未认证的不安全直接对象引用 (IDOR) 漏洞允许未经身份验证的攻击者在无需提供有效凭据或会话 Cookie 的情况下访问访客的地址信息。详细信息在测试过程中发现所有访客用户都可以通过操纵对象标识符发出未经身份验证的请求来检索属于其他访客用户的地址数据。攻击者需要知道店铺前端 URL 结构才能执行此攻击该结构可以在创建注册用户账户后获知。受影响的组件:地址编辑端点:/addresses/{addressId}/edit根本原因CanCanCan Ability 类中的授权检查存在缺陷-can:manage,::Spree::Address,user_id:user.idcan:manage,::Spree::Address,user_id:user.idifuser.persisted?在 Spree::Ability 类中访客用户的user对象是一个Spree.user_class.new对象。用于访问地址的端点是spree_storefrontgem 的一部分。使用 API 的无头构建不受影响因为其中的地址端点仅适用于注册用户并且记录范围限定为当前登录的用户。漏洞复现步骤前置条件:无需身份验证未设置 Cookie 或会话令牌要复现此漏洞只需执行如下所示的请求将数字替换为任意值。初始请求使用访客地址 ID 6 来获取信息。请求示例 1:GET /addresses/6/edit重复请求并检查响应本例中使用访客地址 ID 2。请求示例 2:GET /addresses/2/edit影响未经身份验证的攻击者可以枚举并检索访客地址信息与用户账户关联的地址不受影响访问个人身份信息 (PII)例如全名实际地址电话号码如果存在此漏洞可能导致隐私侵犯监管合规性问题例如GDPR用户信任丧失参考链接GHSA-3ghg-3787-w2xrspree/spree16067despree/spree4c2bd62spree/spreed051925spree/spreee1cff46https://nvd.nist.gov/vuln/detail/CVE-2026-22589https://github.com/rubysec/ruby-advisory-db/blob/master/gems/spree_core/CVE-2026-22589.yml弱点分类弱点标识: CWE-639描述: 通过用户可控密钥绕过授权。系统的授权功能未能防止用户通过修改标识数据的键值来访问另一用户的数据或记录。glyoVzOLZA9nMhz/bDHDAWzfRfZ0dSZtQUalpUyOmxepdNYXwPMrWC1fLMLB5xZ/jDqP18EFeTjJmQ/KRw7Yw更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享