IPBUF安全漏洞报告
English
CVE-2026-35410 CVSS 6.1 中危

CVE-2026-35410 Directus开放重定向漏洞

披露日期: 2026-04-06

漏洞信息

漏洞编号
CVE-2026-35410
漏洞类型
开放重定向
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Directus

相关标签

开放重定向DirectusCWE-601Web安全钓鱼

漏洞概述

Directus是一款用于管理SQL数据库内容的实时API和应用仪表板。在11.16.1版本之前,系统登录重定向逻辑中存在开放重定向漏洞。由于`isLoginRedirectAllowed`函数未能正确识别某些畸形URL为外部链接,导致攻击者可绕过重定向白名单验证。一旦用户成功认证,攻击者即可将其重定向至任意外部恶意域名,进而实施网络钓鱼攻击。

技术细节

该漏洞源于Directus在处理登录后的重定向逻辑时,对目标URL的校验机制存在缺陷。`isLoginRedirectAllowed`函数旨在通过白名单机制限制重定向地址,防止跳转到外部站点。然而,该函数在解析畸形URL时存在逻辑错误,未能准确判定某些特定格式的URL属于外部域。攻击者可以利用URL解析的差异性,构造看似合法但实际指向恶意域名的URL。当受害者点击该链接并完成登录认证后,系统会错误地认为重定向地址在允许列表内,从而将受害者的会话重定向到攻击者控制的外部网站。这种漏洞常被用于网络钓鱼攻击,窃取用户凭证或敏感信息。

攻击链分析

STEP 1
侦察
攻击者识别目标的Directus登录入口。
STEP 2
构造链接
攻击者构造包含畸形redirect参数的恶意URL,利用`isLoginRedirectAllowed`函数的解析缺陷绕过白名单。
STEP 3
社会工程学
攻击者通过钓鱼邮件或即时通讯工具将恶意链接发送给目标用户。
STEP 4
利用漏洞
用户点击链接并在Directus平台完成身份验证,系统处理重定向逻辑时未能拦截,将用户跳转至攻击者控制的恶意站点。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-35410 import requests def check_redirect_vuln(target_host): """ Checks if the target Directus instance is vulnerable to open redirect. Note: The specific bypass technique depends on the malformed URL pattern. """ login_path = "/auth/login" # Example payload logic: Attacker tries to redirect to evil.com # The vulnerability allows bypassing the isLoginRedirectAllowed check malicious_payload = "http://evil.com/phishing" # Construct the full URL url = f"{target_host}{login_path}" params = {"redirect": malicious_payload} try: response = requests.get(url, params=params, allow_redirects=False) # Analyze response headers or body for the redirect if "evil.com" in response.text or "evil.com" in response.headers.get('Location', ''): print(f"[+] Potential Vulnerability Detected at {target_host}") print(f"[+] Payload triggered: {malicious_payload}") else: print("[-] Vulnerability not detected or payload requires specific formatting.") except Exception as e: print(f"Error connecting to {target_host}: {e}") if __name__ == "__main__": target = "http://localhost:8080" # Replace with actual target check_redirect_vuln(target)

影响范围

Directus < 11.16.1

防御指南

临时缓解措施
如果无法立即升级,建议在应用网关或WAF层部署规则,拦截包含外部域名参数的登录请求,并对用户进行安全意识培训,警告其不要点击来源不明的登录链接。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表