CVE-2024-41670
📋 TL;DR
This vulnerability in the PayPal Official module for PrestaShop allows malicious customers to confirm orders even when PayPal payments are declined. Attackers can exploit a logical weakness in payment capture when webhooks are disabled, enabling fraudulent order confirmations. This affects PrestaShop 7+ users with versions before 6.4.2 and PrestaShop 1.6 users with versions before 3.18.1.
💻 Affected Systems
- PrestaShop PayPal Official module
⚠️ Manual Verification Required
This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.
Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).
🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Attackers obtain products/services without paying, causing financial loss, inventory depletion, and potential reputation damage to the e-commerce business.
Likely Case
Fraudulent orders are confirmed without payment, resulting in lost revenue and administrative overhead to identify and cancel fraudulent transactions.
If Mitigated
With proper patching and webhook configuration, orders are only confirmed upon successful payment, preventing exploitation.
🎯 Exploit Status
Exploitation requires customer-level access to place orders. The logical flaw is straightforward to exploit once understood.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 6.4.2 for PrestaShop 7+, 3.18.1 for PrestaShop 1.6
Vendor Advisory: https://github.com/202ecommerce/paypal/security/advisories/GHSA-w3w3-j3mh-3354
Restart Required: No
Instructions:
1. Identify your PrestaShop version (7+ or 1.6). 2. Update PayPal Official module to version 6.4.2 (for 7+) or 3.18.1 (for 1.6) via PrestaShop Marketplace or manual installation. 3. Enable webhooks in PayPal module settings. 4. Verify webhooks are callable by PayPal.
🔧 Temporary Workarounds
Enable PayPal Webhooks
allEnable and configure webhooks in the PayPal module settings to ensure proper payment verification before order confirmation.
🧯 If You Can't Patch
- Enable PayPal webhooks immediately and verify they are functional and callable by PayPal.
- Implement manual order verification for PayPal transactions before marking orders as confirmed.
🔍 How to Verify
Check if Vulnerable:
Check PayPal module version in PrestaShop admin panel: Modules > Module Manager > PayPal Official. If version is below 6.4.2 (for PrestaShop 7+) or 3.18.1 (for PrestaShop 1.6), you are vulnerable.
Check Version:
No CLI command; check via PrestaShop admin interface under Modules > Module Manager.
Verify Fix Applied:
After updating, confirm PayPal module version is 6.4.2 or higher (for 7+) or 3.18.1 or higher (for 1.6). Test a PayPal transaction to ensure orders only confirm upon successful payment.
📡 Detection & Monitoring
Log Indicators:
- Orders confirmed with PayPal payment status 'declined' or 'failed'
- Multiple orders from same customer with declined payments
Network Indicators:
- Unusual patterns of PayPal API calls resulting in order confirmations despite payment failures
SIEM Query:
Search for order_status='confirmed' AND payment_method='paypal' AND payment_status IN ('declined','failed')