CVE-2023-29632
📋 TL;DR
CVE-2023-29632 is a critical SQL injection vulnerability in PrestaShop's jmspagebuilder module that allows attackers to execute arbitrary SQL commands via the ajax_jmspagebuilder.php endpoint. This affects all PrestaShop installations using jmspagebuilder 3.x module. Attackers can potentially access, modify, or delete database content without authentication.
💻 Affected Systems
- PrestaShop jmspagebuilder module
📦 What is this software?
Jmspagebuilder by Joommasters
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise leading to data theft, data destruction, privilege escalation, and potential remote code execution through database functions.
Likely Case
Unauthorized data access, extraction of sensitive information (customer data, admin credentials), and potential site defacement.
If Mitigated
Limited impact with proper input validation, WAF rules, and database permission restrictions preventing data modification.
🎯 Exploit Status
SQL injection via ajax_jmspagebuilder.php endpoint requires no authentication. Exploitation is straightforward with publicly available PoCs.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Update to jmspagebuilder version 3.0.7 or later
Vendor Advisory: https://friends-of-presta.github.io/security-advisories/modules/2023/03/13/jmspagebuilder.html
Restart Required: No
Instructions:
1. Log into PrestaShop admin panel. 2. Navigate to Modules > Module Manager. 3. Find jmspagebuilder module. 4. Update to version 3.0.7 or later. 5. Clear PrestaShop cache.
🔧 Temporary Workarounds
Disable vulnerable endpoint
linuxTemporarily block access to ajax_jmspagebuilder.php
mv modules/jmspagebuilder/controllers/front/ajax_jmspagebuilder.php modules/jmspagebuilder/controllers/front/ajax_jmspagebuilder.php.disabled
Web Application Firewall rule
allBlock SQL injection patterns targeting the vulnerable endpoint
Add WAF rule: Block requests containing SQL keywords to /modules/jmspagebuilder/controllers/front/ajax_jmspagebuilder.php
🧯 If You Can't Patch
- Disable jmspagebuilder module completely via PrestaShop admin panel
- Implement strict input validation and parameterized queries at application level
🔍 How to Verify
Check if Vulnerable:
Check if modules/jmspagebuilder/ exists and version is below 3.0.7 in module configuration
Check Version:
grep -r 'version' modules/jmspagebuilder/ || cat modules/jmspagebuilder/config.xml | grep version
Verify Fix Applied:
Verify jmspagebuilder module version is 3.0.7 or higher in PrestaShop admin panel
📡 Detection & Monitoring
Log Indicators:
- Unusual SQL queries in database logs
- Multiple requests to ajax_jmspagebuilder.php with SQL keywords
- Database error messages containing SQL syntax
Network Indicators:
- POST/GET requests to /modules/jmspagebuilder/controllers/front/ajax_jmspagebuilder.php with SQL injection payloads
SIEM Query:
source="web_logs" AND uri="/modules/jmspagebuilder/controllers/front/ajax_jmspagebuilder.php" AND (payload="UNION" OR payload="SELECT" OR payload="INSERT" OR payload="DELETE")