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é. 🙏