Skip to main content

ps_facetedsearch EUVDEUVD-2026-45327

| CVE-2026-54159 CRITICAL
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2026-07-10 https://github.com/PrestaShop/ps_facetedsearch GHSA-m5f5-28qr-9g9r
10.0
CVSS 3.1 · Vendor: https://github.com/PrestaShop/ps_facetedsearch
Share

Severity by source

Vendor (https://github.com/PrestaShop/ps_facetedsearch) PRIMARY
10.0 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
vuln.today AI
10.0 CRITICAL

Unauthenticated single-request injection (AV:N/AC:L/PR:N/UI:N) yields a webshell executing OS commands beyond the app, so scope changes (S:C) with full C/I/A loss.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (https://github.com/PrestaShop/ps_facetedsearch).

CVSS VectorVendor: https://github.com/PrestaShop/ps_facetedsearch

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Analysis Generated
Jul 10, 2026 - 21:32 vuln.today
CVE Published
Jul 10, 2026 - 20:36 github-advisory
CRITICAL 10.0

DescriptionCVE.org

Impact

A PHP Object Injection vulnerability affects the PrestaShop module ps_facetedsearch.

The module rebuilds the selected search filters from the request URL. The value of a slider filter (price or weight) is taken from the URL without sufficient validation, then stored in an internal filter-block cache where it is serialized and later read back with a raw native unserialize(). By crafting that value, an attacker can smuggle a malicious serialized PHP object into the cache. When it is deserialized, a gadget chain writes an arbitrary PHP file inside the module directory, which is then used as a webshell to run commands on the server.

Who is impacted

Any shop using a vulnerable version of ps_facetedsearch that displays a filter template containing a slider filter (price or weight). Exploitation is remote and unauthenticated, a single crafted front-office request is enough, and leads to remote code execution and full compromise of the shop and its server.

Affected versions: 3.0.0 through 4.0.3 (all versions since 3.0.0, including the latest release).

Patches

Upgrade the ps_facetedsearch module to the patched version. Upgrading the module is the best action that removes the vulnerability.

Otherwise, you can apply the fix manually in the file src/Filters/Block.php:

In the getFromCache() method, replace the native unserialize() call:

php
// Before
if (!empty($row)) {
    return unserialize(current($row));
}

// After
if (!empty($row)) {
    return \Tools::unSerialize(current($row));
}

Until the module is upgraded:

  • Remove price and weight slider filters from the filter templates that are exposed on the

front office.

  • Clear the faceted-search filter cache, and audit the modules/ps_facetedsearch/ directory for

unexpected PHP files.

  • Monitor search requests for PHP serialization patterns (O:, ;i:, references to classes such

as Monolog\…) and block them at the WAF level.

Resources

  • Thank you to Frédéric Moreau (Antadis) and Gilles Caudal (Datalinx) for reporting this vulnerability.

AnalysisAI

Unauthenticated remote code execution in the PrestaShop ps_facetedsearch (layered navigation) module versions 3.0.0 through 4.0.3 allows a single crafted front-office request to fully compromise the shop and its underlying server. The module rebuilds price/weight slider filter values from the request URL and later reads them back through a native unserialize(), enabling PHP object injection whose gadget chain writes a PHP webshell into the module directory. No public exploit is identified at time of analysis, but the flaw is trivially reachable and rated CVSS 10.0.

Technical ContextAI

ps_facetedsearch is PrestaShop's native faceted/layered-navigation module, distributed as the Composer package prestashop_ps_facetedsearch. The root cause is CWE-74 injection realized as PHP Object Injection (insecure deserialization): in src/Filters/Block.php the getFromCache() method calls PHP's raw unserialize() on a value that originates from the slider filter (price or weight) portion of the front-office request URL. Because that URL-derived value is stored in the internal filter-block cache and then deserialized without type restriction, an attacker-supplied serialized object (e.g. leveraging gadget classes reachable in the PrestaShop/Symfony/Monolog code base) is instantiated. The gadget chain performs an arbitrary file write inside modules/ps_facetedsearch/, dropping a PHP file that is subsequently requested as a webshell to execute OS commands.

RemediationAI

Upgrade ps_facetedsearch to the patched version referenced in the vendor advisory GHSA-m5f5-28qr-9g9r (https://github.com/PrestaShop/ps_facetedsearch/security/advisories/GHSA-m5f5-28qr-9g9r); the exact fixed version is not stated in the provided data, so confirm it from that advisory before deploying. If immediate upgrade is not possible, apply the vendor's manual fix in src/Filters/Block.php by replacing the native unserialize(current($row)) call in getFromCache() with the safe \Tools::unSerialize(current($row)) wrapper. As additional compensating controls, remove price and weight slider filters from any front-office filter templates (this disables slider-based navigation but closes the injection sink), clear the faceted-search filter cache, and audit modules/ps_facetedsearch/ for unexpected PHP files that may already be planted webshells. Finally, add WAF rules to block requests containing PHP serialization patterns such as 'O:' and ';i:' or references to gadget classes like Monolog\, accepting the risk of occasional false positives on legitimate search traffic.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

Share

EUVD-2026-45327 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy