CVE-2023-29632

9.8 CRITICAL

📋 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

Products:
  • PrestaShop jmspagebuilder module
Versions: 3.x versions
Operating Systems: All operating systems running PrestaShop
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects PrestaShop installations with jmspagebuilder module installed. The vulnerability is in the module, not core PrestaShop.

📦 What is this software?

⚠️ 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.

🌐 Internet-Facing: HIGH - The vulnerable endpoint is typically internet-accessible in PrestaShop installations.
🏢 Internal Only: MEDIUM - Internal systems could still be vulnerable if the module is installed, but attack surface is reduced.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

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

linux

Temporarily 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

all

Block 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")

🔗 References

📤 Share & Export