Faille de sécurité du module PrestaShop ps_facetedsearch

Faille de sécurité du module PrestaShop ps_facetedsearch

🚨 Alerte sécurité PrestaShop

🛡️ Faille critique du module ps_facetedsearch : votre boutique PrestaShop est-elle en danger ?

Tout comprendre sur la vulnérabilité de la « Recherche à facettes », savoir si vous avez déjà été piraté, et fermer la porte en 5 minutes. ⏱️

🔑 Mots-clés : faille PrestaShop, ps_facetedsearch, sécurité e-commerce, injection SQL, recherche à facettes, mise à jour PrestaShop, webshell, piratage boutique en ligne, CVE PrestaShop, protéger PrestaShop

Si vous gérez une boutique PrestaShop, cet article peut littéralement sauver votre site. 💾 Une faille de sécurité critique touche le module officiel ps_facetedsearch (la fameuse « Recherche à facettes » qui affiche les filtres prix / marque / couleur sur vos pages catégories). Elle permet à un attaquant d'agir sans aucun mot de passe, sans aucun compte. 😱

Bonne nouvelle : la corriger est simple et rapide. Encore faut-il savoir quoi vérifier. On vous explique tout, étape par étape, même si vous n'êtes pas développeur. 👇

 

⚡ En résumé (pour les pressés)

  • Module concerné : ps_facetedsearch (Recherche à facettes)
  • Versions vulnérables : de la 3.0.0 à la 4.0.3
  • Version corrigée : 4.0.4 ✅
  • Gravité : 🔴 Critique (exécution de code à distance, sans authentification)
  • Action : Mettre à jour en 4.0.4 ou renommer/supprimer le module si vous ne l'utilisez pas.

🔍 1. C'est quoi, concrètement, cette faille ?

Le module « Recherche à facettes » lit les filtres directement depuis l'adresse de la page (ce qui se trouve après le ?q= dans l'URL). Exemple d'une URL parfaitement normale :

/3-chaussures?q=Couleur-Noir/Marque-Nike&order=product.price.asc

Le problème : dans les versions vulnérables, ces filtres ne sont pas suffisamment nettoyés avant d'être utilisés. Un attaquant peut donc glisser des instructions malveillantes à la place d'un simple « Noir » ou « Nike ». C'est ce qu'on appelle une injection SQL 💉 — et dans le pire des cas, elle permet de déposer un fichier pirate sur le serveur pour en prendre le contrôle.

🎭 2. Comment un pirate s'y prend (exemples volontairement incomplets)

ℹ️ Note importante : les exemples ci-dessous sont tronqués et neutralisés exprès. Le but est que vous reconnaissiez une attaque dans vos journaux, pas de fournir un mode d'emploi. 🙅‍♂️

Étape 1 — l'attaquant teste l'injection. Au lieu d'un filtre normal, il envoie quelque chose comme :

/3-categorie?q=Poids-0)%20UNION%20SELECT%20…(coupé)…--%20-

Étape 2 — il cherche à déposer un fichier piégé (un « webshell ») dans un dossier du site, à l'aide d'instructions du type INTO OUTFILE '…/up.php'. C'est précisément pourquoi l'éditeur recommande de chercher des fichiers PHP anormaux dans le dossier du module.

Étape 3 — il utilise ce fichier pour exécuter des commandes :

/modules/ps_facetedsearch/up.php?c=…(commande)…

👉 En clair : le pirate passe de « visiteur anonyme » à « propriétaire de votre serveur » en quelques requêtes. Il peut alors voler vos données clients, injecter du spam SEO, ou rediriger vos paiements. 💳❌

🕵️ 3. Suis-je DÉJÀ piraté ? Les vérifications à faire

Voici les signes qui ne trompent pas. Vous pouvez demander ces vérifications à votre hébergeur ou à votre développeur si vous n'êtes pas à l'aise avec la ligne de commande.

🛡️ La solution WebPoint

😮‍ Heureusement, ne paniquez pas : on veille pour vous !

Et si vous étiez prévenu à la seconde où un pirate touche un fichier ? Notre module WebPoint Monitoring surveille votre boutique en temps réel : 🔍 toute modification, 🆕 création ou 🗑️ suppression de fichier déclenche une alerte immédiate. Vous repérez une intrusion avant qu'elle ne fasse des dégâts. 🚀

✅ Surveillance temps réel 🔔 Alertes instantanées 🛡️ Anti-piratage ⚙️ Zéro config compliquée
🔒 Protéger ma boutique maintenant →

Dormez tranquille : si un fichier bouge, vous le saurez. 😴✨

✅ A. Des fichiers PHP qui n'ont rien à faire là

Cherchez tout fichier .php récent ou inattendu dans le dossier du module :

find modules/ps_facetedsearch/ -name "*.php" -mtime -30

⚠️ Un fichier au nom bizarre (ex. up.php, x.php, shell.php) ou une double extension (ex. logo.png.php) = très mauvais signe. 🚩

✅ B. Des traces d'attaque dans les journaux du serveur

Cherchez les requêtes contenant des signatures d'injection SQL :

grep -iE "union.+select|into.+outfile|information_schema" access.log

Si vous trouvez ces mots dans des URL visiteurs, quelqu'un a tenté quelque chose. Vérifiez ensuite le code de réponse : un 200 avec une grosse réponse est plus inquiétant qu'un 404 / 302.

✅ C. Des fichiers PHP cachés ailleurs (racine, /img, /upload)

Aucun fichier exécutable ne devrait normalement vivre dans /img ou /upload (à part les index.php vides de PrestaShop) :

find img/ upload/ -name "*.php"

✅ D. Les autres pièges classiques

  • 👤 Un compte administrateur que vous ne reconnaissez pas (Paramètres avancés → Équipe).
  • 📝 Des descriptions / méta-descriptions de pages modifiées avec du texte ou des liens étrangers (spam SEO).
  • ⏰ Une tâche planifiée (CRON) inconnue.
  • 🔀 Des redirections inattendues vers d'autres sites.

🛠️ 4. Comment fermer la porte (en 5 minutes)

🟢 Option 1 — Vous utilisez la recherche à facettes

👉 Mettez le module à jour en version 4.0.4 (ou plus récente).

Dans votre back-office : Modules → Mises à jour, cherchez « Recherche à facettes » puis cliquez sur Mettre à jour. C'est tout. ✅

🔵 Option 2 — Vous ne l'utilisez pas

👉 Désactivez-le, ou supprimez/renommez son dossier.

Le plus simple : back-office → Modules → désinstaller la « Recherche à facettes ». Côté serveur, renommer le dossier ps_facetedsearch suffit à neutraliser la faille. 🔒

🚑 Si vous trouvez des signes de piratage (fichier suspect, compte admin inconnu…) : ne paniquez pas, mais agissez vite. Faites une sauvegarde, supprimez les fichiers malveillants, changez TOUS vos mots de passe (admin, base de données, FTP), et faites-vous aider par un expert PrestaShop si besoin. 🔑🔄

🧱 5. Bonus : 6 réflexes pour ne plus jamais se faire avoir

  1. 🔄 Mettez à jour PrestaShop et tous vos modules régulièrement.
  2. 🧹 Supprimez les modules inutilisés : chaque module = une porte potentielle.
  3. 👁️ Installez un module de surveillance de fichiers (alerte dès qu'un fichier est créé/modifié).
  4. 🛡️ Activez un pare-feu applicatif (WAF) chez votre hébergeur.
  5. 🚫 Demandez à désactiver les fonctions PHP dangereuses (exec, system, shell_exec, passthru…).
  6. 💾 Faites des sauvegardes automatiques et testez-les.

🎯 Conclusion

Cette faille est sérieuse, mais la parade est à la portée de tous : mettez à jour en 4.0.4, ou débarrassez-vous du module si vous ne vous en servez pas. Prenez 5 minutes aujourd'hui 🕐 — c'est infiniment moins coûteux que de récupérer une boutique piratée. 💪

Article informatif rédigé à but de prévention. Les exemples techniques sont volontairement incomplets pour des raisons de sécurité. 🙏

Article publié à l'origine sur webpoint.fr.

Commentaires

Posts les plus consultés de ce blog

Comment j'ai sécurisé ma boutique PrestaShop en 10 minutes (mentions légales)

Comment j’ai lancé mon commerce du froid en un temps record grâce à une boutique clé en main

Comment j'ai évité une amende grâce à un simple module PrestaShop