CVE-2026-22032CVE-2026-22032是GitHub安全团队发现的影响Directus系统的开放重定向漏洞。Directus是一款实时API和应用仪表板,用于管理SQL数据库内容。该漏洞存在于SAML认证回调端点中,未经授权的攻击者可利用此漏洞将用户重定向至任意外部网站。漏洞的根本原因在于SAML认证流程中的RelayState参数验证机制不完整:虽然登录发起流程会对重定向目标进行域名验证,但回调端点缺少相应的验证逻辑。攻击者可以构造恶意的SAML认证请求,在认证完成后将受害者重定向到钓鱼网站或恶意站点。此漏洞在认证成功和错误处理两条路径均存在利用面,且无需认证即可发起攻击,但需要诱导用户点击恶意链接。该漏洞已于版本11.14.0中修复。
该漏洞的核心问题在于Directus的SAML认证实现中,对RelayState参数的处理存在安全缺陷。RelayState是SAML协议中用于在认证过程中保持用户原始目标状态的参数。在正常的SAML认证流程中,用户首先访问需要认证的资源,系统生成认证请求并重定向到身份提供商(IdP),用户完成认证后,IdP将用户重定向回Directus的回调端点,并携带SAML响应和RelayState参数。回调端点应该验证RelayState中指定的目标URL是否属于允许的域名范围。然而,分析发现Directus在回调端点(/auth/saml/callback)并未实施与登录发起端点相同的域名白名单验证。攻击者可以构造包含外部恶意URL的RelayState参数,当用户完成SAML认证后,无论认证成功或失败,都会被重定向到攻击者控制的网站。这种开放重定向可用于钓鱼攻击,窃取用户凭据或进行进一步的攻击。漏洞影响所有使用SAML认证的Directus实例。