漏洞概述 Rocket.Chat的CAS登录处理器存在预认证NoSQL注入漏洞,导致任意CAS/SAML用户会话劫持。攻击者可以通过替换MongoDB查询操作符(如 )来绕过CAS令牌检查,从而获取未过期文档的访问权限。 影响范围 受影响版本:Rocket.Chat <8.5.0, <8.4.1, <8.3.3, <8.2.3, 8.5.0, 8.4.1, 8.3.3, 8.2.3, 8.1.4, <8.1.4, <8.0.5, <7.13.7, 8.0.5, 7.13.7, 7.10.11, <7.10.11 严重程度:Critical (9.1/10) CVSS v3 base metrics: - Attack vector: Network - Attack complexity: Low - Privileges required: None - User interaction: None - Scope: Unchanged - Confidentiality: High - Integrity: High - Availability: None 修复方案 已修复版本:8.5.0, 8.4.1, 8.3.3, 8.2.3, 8.1.4, 8.0.5, 7.13.7, 7.10.11 漏洞细节 前提条件 无需认证,攻击者只需网络可达实例的 或 端点。 目标实例必须配置并活跃使用CAS或SAML。 合法的SSO登录必须在60秒凭证令牌窗口内发生。 根本原因 1. CAS处理器中无类型验证: 2. 模型中的原始查询组合: 3. CAS处理器在启动时无条件注册: 4. 跨提供商攻击表面通过SAML写入同一集合: 5. 短但确定性的竞态窗口: 影响 完全账户接管:任何执行CAS或SAML SSO登录的用户都可能被攻击者劫持。 管理员权限提升:如果受害者是管理员,攻击者可以安装任意Apps-Engine应用,修改设置,甚至查看所有用户数据。 跨提供商爆炸半径:SAML实例也可被利用,因为CAS处理器跨读SAML写入的集合。 无认证、无账户、无用户交互:攻击者只需网络可达实例的 。 对受害者无声:受害者的CAS登录正常完成,服务器级DDP访问日志记录额外 方法调用,但Rocket.Chat不记录DDP方法体。 其他信息 CVE ID:CVE-2024-4588 弱点:CWE-943 信用:odd