BlogSpoedhulp

ps_facetedsearch-lek: deze PrestaShop-update mag u niet missen

Een lek met score 10 op 10 geeft aanvallers via één URL de controle over uw webshop. Zo controleert u uw versie en spoort u sporen van misbruik op.

Presta Debug31 juli 2026 5 min leestijd
Gebarsten veiligheidsschild als symbool voor een kritiek lek in een PrestaShop-module

Een 10 op 10, bruikbaar zonder account

Op 3 juni 2026 bracht het PrestaShop-team een noodpatch uit voor ps_facetedsearch, de module voor facetzoeken die sinds versie 1.7.1.0 standaard in vrijwel elke webshop zit. Het gedichte lek scoort de maximale waarde op de CVSS-schaal: 10.0.

Drie eigenschappen maken de kwetsbaarheid zo gevaarlijk:

  • er is geen authenticatie nodig: geen klantaccount, geen toegang tot de back-office;
  • misbruik verloopt via de front-office, met één enkel HTTP-verzoek;
  • het eindresultaat is remote code execution: een aanvaller zet een bestuurbaar PHP-bestand op uw server neer.

Een bot die PrestaShop-webshops afstruint, kan uw shop dus overnemen zonder dat er iets in uw beheerhistorie verschijnt.

Hoe het lek werkt

De module cachet de filterblokken om de facetten niet bij elk bezoek opnieuw te hoeven berekenen. De waarden van de schuifregelaars (prijs, gewicht) worden uit de URL gelezen en daarna geserialiseerd in die cache opgeslagen.

Het probleem zit in het teruglezen. Tot en met versie 4.0.3 liet de module de native PHP-functie unserialize() op die waarden los zonder ze vooraf voldoende te valideren. Een aanvaller kan daardoor een URL opstellen met een kwaadaardig PHP-object erin. Bij het deserialiseren zet dat object een gadgetketen in gang die in de dependencies van PrestaShop aanwezig is, met als eindresultaat dat er een willekeurig bestand in de modulemap wordt weggeschreven.

De officiële patch vervangt unserialize() door \Tools::unSerialize(), de beveiligde variant van PrestaShop.

Loopt uw webshop risico?

Kwetsbare versies: 3.0.0 tot en met 4.0.3. Gepatchte versie: 4.0.4.

Controleer uw versie via Modules > Modulemanager en zoek daar op de facetzoekmodule. U kunt ook de <version>-tag in modules/ps_facetedsearch/config.xml uitlezen.

In de database volstaat één query:

SELECT name, version FROM ps_module WHERE name = 'ps_facetedsearch';

Alles onder 4.0.4 beschouwt u als kwetsbaar, ook wanneer de filters maar op een paar categorieën zichtbaar zijn: de controller blijft bereikbaar.

De patch: twee routes

De core bijwerken. PrestaShop bracht diezelfde dag de versies 8.2.7 en 9.1.4 uit, inclusief de gecorrigeerde module. Dat is de aanbevolen route als u al dicht bij die versies zit.

Alleen de module bijwerken. Download ps_facetedsearch 4.0.4 uit de officiële repository en vervang de map. Dit is de snelste optie wanneer een versiesprong van de core een volledig testtraject betekent.

Leeg in beide gevallen var/cache/prod/ na afloop en wis de cache van de module. Kunt u niet meteen ingrijpen, pas dan de workarounds toe die bij de advisory zijn gepubliceerd: haal de schuifregelaarfilters uit de publieke templates, wis de cache van het facetzoeken en blokkeer op uw web application firewall de verzoeken waarvan de query string PHP-serialisatiepatronen bevat (O:, ;i:).

Nagaan of er al iemand binnen is geweest

Een patch sluit geen deur die al gebruikt is. Zoek na de update naar sporen van een geplaatst bestand.

Recent gewijzigde PHP-bestanden in de modules:

find modules/ -name "*.php" -mtime -60 -ls

Typische backdoor-patronen:

grep -rl "eval(\$_POST\|eval(base64_decode\|assert(\$_REQUEST" modules/ themes/ override/

Controleer daarnaast:

  • de map modules/ps_facetedsearch/: elk .php-bestand dat niet in de officiële distributie zit, is verdacht;
  • de accesslogs van uw hostingpartij, op zoek naar verzoeken met abnormaal lange tekenreeksen;
  • de tabel ps_employee: een onbekend beheerdersaccount wijst op een compromittering die al langer loopt;
  • de bestanden .htaccess en robots.txt, die vaak worden aangepast om spampagina's te verbergen.

Vindt u iets, verwijder dan niet alleen dat ene bestand. Bij een inbraak hoort vrijwel altijd een tweede achterdeur. Wijzig alle wachtwoorden van medewerkers, genereer de sleutels in config/settings.inc.php opnieuw (waaronder _COOKIE_KEY_) en zet een back-up terug van vóór de inbraak. Ons artikel over een gehackte PrestaShop-webshop beschrijft de volledige procedure.

De les: standaard is niet hetzelfde als veilig

Veel webshopeigenaren houden hun externe modules scherp in de gaten en laten de standaardmodules hun gang gaan. Deze episode laat zien dat standaard meegeleverde code op honderdduizenden webshops draait: juist die code is voor aanvallers het interessantst.

Drie gewoonten verkleinen het risico aanzienlijk:

  • de securitypublicaties van PrestaShop en Friends-of-Presta volgen;
  • beveiligingspatches binnen 72 uur uitrollen, via een acceptatieomgeving als de webshop complex is;
  • een inventaris van moduleversies bijhouden, zodat u de vraag "loop ik risico?" binnen vijf minuten kunt beantwoorden.

Precies dat valt onder een onderhoudscontract voor PrestaShop.

Direct een audit nodig?

Wij controleren uw versie, voeren de patch door en zoeken naar sporen van inbraak. Gratis diagnose, reactie binnen 1 uur, van 9 tot 22 uur, 7 dagen per week.