CVE-2025-61922: PrestaShop Checkout allows customer account takeover via email
9.1
Basic Information
Technical Details
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| prestashop/ps_checkout | composer | < 4.4.1 | 4.4.1 |
| prestashop/ps_checkout | composer | >= 5.0.0, < 5.0.5 | 5.0.5 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability lies in the Express Checkout feature of the PrestaShop Checkout module. The root cause is improper authentication in the PsCheckout\Infrastructure\Action\CustomerAuthenticationAction::execute method. When a user performs an express checkout, this method checks if an account already exists with the provided email address. If it does, it logs the user into that account without requiring a password, leading to a critical account takeover vulnerability. The patch addresses this by completely removing the vulnerable logic from CustomerAuthenticationAction::execute and changing the calling function, PsCheckout\Core\Customer\Action\ExpressCheckoutAction::execute, to create a new guest account instead of attempting to log in an existing user. Additional validation was also added in the ps_checkoutExpressCheckoutModuleFrontController::postProcess method to ensure the PayPal order ID is associated with the current cart, providing an extra layer of security.
Vulnerable functions
PsCheckout\Infrastructure\Action\CustomerAuthenticationAction::executeinfrastructure/src/Action/CustomerAuthenticationAction.php
PsCheckout\Core\Customer\Action\ExpressCheckoutAction::executecore/src/Customer/Action/ExpressCheckoutAction.php
ps_checkoutExpressCheckoutModuleFrontController::postProcessps17/controllers/front/ExpressCheckout.php