Summary
CVE-2026-54159 is a critical PHP object injection vulnerability in the PrestaShop ps_facetedsearch (Faceted Search) module, affecting versions 3.0.0 through 4.0.3. An unauthenticated attacker can exploit the flaw via a single crafted HTTP request to achieve full remote code execution on the underlying server. The vulnerability carries a CVSS v3.1 base score of 10.0 (Critical) and has been patched in version 4.0.4.
Technical details
- Root cause: The module rebuilds layered navigation filters from the request URL. The value of a slider filter — either price or weight — is accepted from the URL without sufficient validation. This value is serialized and stored in an internal filter-block cache, then later retrieved and passed to a raw native
unserialize()call insidesrc/Filters/Block.php(getFromCache()method) with no safeguards against malicious objects. - Trigger conditions: An unauthenticated attacker sends a single front-office HTTP request with a crafted slider filter URL parameter. No account, session, or prior knowledge of the target is required.
- Attack vector: Network-accessible PrestaShop storefront; no privileges required, no user interaction required.
- Impact: The deserialized malicious object triggers a PHP gadget chain that writes an arbitrary PHP file inside the
modules/ps_facetedsearch/directory on the server. This file operates as a webshell, granting the attacker full remote code execution — enabling complete shop and server compromise, including data exfiltration, lateral movement, and persistence.
Affected software
- PrestaShop
ps_facetedsearch(Faceted Search module) versions 3.0.0 through 4.0.3, running on PrestaShop 1.7.1.0 or newer
Severity
- CVSS v3.1 Base Score: 10.0 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - CWE: CWE-74 – Improper Neutralization of Special Elements in Output Used by a Downstream Component
Mitigation and recommended actions
- Immediate – patch: Update the
ps_facetedsearchmodule to version 4.0.4 via the PrestaShop Back Office (Modules → Faceted Search → Update). This replaces the unsafeunserialize()call with the hardenedTools::unSerialize()method. - If immediate patching is not possible:
- Deploy a Web Application Firewall (WAF) or edge service to block malicious serialized object patterns before they reach PrestaShop.
- Restrict dangerous PHP functions via
php.ini:disable_functions = exec,passthru,shell_exec,system,proc_open,popen,proc_close,proc_nice,pcntl_exec
- Post-incident check: If your shop ran an affected version, inspect the
modules/ps_facetedsearch/directory for unexpected PHP files and review server access logs for unusual requests targeting the module path.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

