Le blog

Date : 24 octobre 2026
Boutique PrestaShop 1.6 piratée par une porte dérobée, et migration sécurisée vers un nouveau serveur
Sommaire

En bref : en octobre 2026, pendant l'audit de migration d'une boutique PrestaShop 1.6 vers PrestaShop 9.2, nous avons découvert que le site était compromis depuis au moins août 2024. Au total, onze fichiers avaient été ajoutés ou modifiés par des pirates, dont un qui volait les mots de passe du back-office. Voici ce que nous avons trouvé, comment, ce que nous avons corrigé, et pourquoi la migration prévue début janvier 2027 règle le problème à la racine.

Cette boutique est celle d'un commerce indépendant, avec un magasin physique et plus de 20 000 fiches clients en ligne. La gérante est une nouvelle cliente : elle nous a confié la migration de son PrestaShop 1.6 cet été. Nous racontons son cas sans la nommer, parce qu'il ressemble à celui de beaucoup de boutiques restées en 1.6 : tout semble fonctionner, les commandes tombent, et personne ne regarde ce qui se passe dans les fichiers.

Le point de départ : une boutique en PrestaShop 1.6 qui « marche »

Lors du premier rendez-vous, nous avons fait un état des lieux technique. La boutique tournait sous PrestaShop 1.6.1.11 avec PHP 7.0. Deux faits suffisent à résumer le risque :

  • PrestaShop a arrêté la maintenance officielle de la branche 1.6 le 30 juin 2019. Ensuite, seuls des bénévoles ont publié quelques correctifs critiques. La boutique n'avait même pas les dernières versions de sécurité de la 1.6 (1.6.1.21 à 1.6.1.24, publiées en 2018 et 2019).
  • PHP 7.0 ne reçoit plus aucun correctif depuis le 10 janvier 2019.

Nous l'avons expliqué à la cliente en ces termes : chaque jour sans migration est un jour où une faille connue reste ouverte, et le jour où quelqu'un l'exploite, on ne le voit pas forcément. Elle a choisi de migrer vers PrestaShop 9.2, avec une mise en ligne prévue entre le 1er et le 5 janvier 2027, avant les soldes d'hiver. Nous lui avons aussi dit franchement que si la recette n'était pas satisfaisante mi-décembre, il serait plus prudent de faire les soldes sur l'ancien site et de basculer juste après.

Pour comprendre pourquoi une version en fin de vie est un risque concret, voir aussi notre article sur PrestaShop 1.6 en fin de vie.

Comment le piratage a-t-il été découvert ?

Le piratage a été découvert pendant la préparation de la migration, pas par un symptôme visible. La boutique fonctionnait normalement. C'est l'analyse fichier par fichier de la copie de référence, prise avant tout travail, qui a fait apparaître un module que personne n'avait installé.

Une migration propre commence par une copie complète du site actuel : fichiers, base de données et journaux, avec une empreinte (SHA-256) de chaque fichier. Cette copie sert de référence et nous permet de travailler sans toucher à la boutique en ligne.

En analysant cette copie, nous avons repéré un module que personne n'avait installé : psanalyticsenhancer. Son nom imitait un outil de statistiques officiel. Il avait été déposé le matin même et contenait deux portes dérobées.

Une porte dérobée (ou backdoor) est un petit fichier qui permet à un pirate d'exécuter n'importe quelle commande sur le serveur, sans passer par le back-office. Elle ne change rien à l'affichage du site : le commerçant ne voit rien.

Les journaux du serveur ont ensuite montré la suite. Le soir du même jour, pendant environ 40 minutes, depuis un serveur VPN situé à l'étranger, le pirate a :

  1. appelé la porte dérobée une quarantaine de fois ;
  2. installé un outil d'administration de base de données (Adminer) et s'est connecté avec les identifiants techniques de la boutique, lus dans le fichier de configuration ;
  3. consulté la table des comptes d'administration, puis la table des clients jusqu'à la dernière page ;
  4. ouvert le back-office avec la session de la gérante et consulté des pages de commandes ;
  5. supprimé ses outils et les deux portes dérobées du faux module pour effacer ses traces.

Nous n'avons trouvé aucune trace de téléchargement massif de la base clients (pas d'export, pas de réponse assez volumineuse). En revanche, la consultation des coordonnées des clients est avérée. La boutique ne stocke aucune donnée bancaire : les paiements passent par les pages sécurisées des banques.

Par où le pirate est-il entré ?

Le faux module a été déposé depuis la connexion Internet du magasin, à une heure où la gérante travaillait normalement dans le back-office. Aucune requête web de dépôt, aucune connexion FTP ce jour-là. La même connexion utilisait encore un ancien poste sous Windows 7 pour lire les e-mails.

L'hypothèse la plus probable : ce poste, qui ne reçoit plus de mises à jour depuis des années, était infecté et a servi à voler la session ou les identifiants. C'est une hypothèse, pas une certitude. Nous avons demandé à la cliente de le débrancher et de faire vérifier tous les postes du magasin. Un site peut être parfaitement à jour et quand même se faire voler ses accès par le poste qui s'y connecte.

Depuis quand la boutique était-elle piratée ?

Depuis au moins août 2024, soit 14 mois avant l'attaque d'octobre 2026. Les plus anciennes portes dérobées dormaient dans le paiement par virement et dans la newsletter. D'autres ont été ajoutées en décembre 2024 et en mars 2025, malgré un nettoyage partiel fait entre-temps par un tiers.

Chronologie

DateÉvénement
août 2024portes dérobées dans les modules de paiement par virement et de newsletter
novembre 2024nettoyage partiel par un outil tiers, qui ne retire pas tout
décembre 2024deux nouvelles portes dérobées, dont une dans un fichier officiel du cœur
mars 2025webshell complet déposé à la racine
été 2026premier rendez-vous, risques de la version 1.6 expliqués, migration décidée
octobre 2026, matinfaux module « statistiques » déposé
octobre 2026, soirconsultation de la base clients, vol d'identifiants, voleur de mots de passe posé, traces effacées
le lendemainpreuves conservées, portes dérobées retirées, accès changés
quelques jours plus tardcontrôle de suivi, fichiers antidatés retirés
début janvier 2027mise en ligne prévue de la boutique PrestaShop 9.2 reconstruite à neuf

Les fichiers trouvés

Une fois l'attaque du jour comprise, nous avons comparé chaque fichier du site avec l'archive officielle de PrestaShop 1.6.1.11, soit 3 105 fichiers PHP, JavaScript et .htaccess. Résultat : la boutique était compromise bien avant cette attaque.

FichierDéposéRôle
modules/bankwire/controllers/front/validation.phpaoût 2024porte dérobée cachée dans la validation du paiement par virement
modules/blocknewsletter/controllers/front/verification.phpaoût 2024porte dérobée dans le module newsletter
images.inc.php (racine)décembre 2024exécution de code envoyé par le pirate, ajoutée au milieu d'un fichier officiel
modules/statscarrier/translations/ar.phpdécembre 2024même porte dérobée, déguisée en fichier de traduction
indexx.php (racine)mars 2025webshell obfusqué de 68 Ko, c'est-à-dire une interface complète de prise de contrôle du serveur

Nous avons aussi trouvé à la racine deux scripts de nettoyage d'un éditeur tiers, datés de novembre 2024. Quelqu'un avait donc déjà « nettoyé » le site à l'époque, mais sans tout retirer. Ces anciennes portes dérobées n'avaient pas été appelées dans les journaux disponibles : elles dormaient, prêtes à servir.

Le site de préproduction, hébergé sur le même compte, a été contrôlé de la même façon : aucune de ces signatures.

Notre intervention : preuves, neutralisation, accès coupés

La migration ne pouvait pas avancer sur un site compromis. Avec l'accord de la cliente, nous avons pris en charge la mise en sécurité de la boutique en ligne, dans cet ordre :

  1. Conserver les preuves avant de toucher à quoi que ce soit. Copie de chaque fichier malveillant hors du répertoire web, empreintes SHA-256, horodatage. Si la cliente veut porter plainte, le dossier est prêt.
  2. Neutraliser. Les fichiers ajoutés par le pirate ont été déplacés en quarantaine. Les fichiers officiels modifiés ont été remplacés par leur version d'origine, et nous avons vérifié que leur empreinte correspond à l'archive PrestaShop.
  3. Tester. Chaque porte dérobée retirée renvoie une erreur 404. Un envoi de test sur l'ancienne porte de images.inc.php n'exécute plus rien.
  4. Couper les accès volés. Nouveaux mots de passe pour les quatre comptes du back-office, les deux bases de données et les comptes FTP. Changer le mot de passe d'un compte PrestaShop 1.6 invalide aussi les sessions déjà ouvertes avec l'ancien.
  5. Bloquer l'adresse IP utilisée par le pirate. C'est utile mais secondaire : un VPN en change facilement. Pour filtrer durablement les attaques, il faut un pare-feu applicatif réglé pour PrestaShop.
  6. Vérifier que la boutique fonctionne : accueil, catégories, fiches produit, commande, back-office.

Comment repérer les fichiers antidatés par un pirate ?

Un pirate peut changer la date de modification d'un fichier pour qu'il paraisse ancien. Il ne peut pas changer sa date de changement d'état (ctime sous Linux). Rechercher tous les fichiers dont le ctime tombe pendant l'attaque fait ressortir ses dépôts, même s'ils affichent une date de 2024.

Quelques jours après l'intervention, un contrôle de suivi complet a été mené avec une autre méthode : comparaison de chaque fichier avec la copie de référence prise avant l'attaque, et recherche par date système. Il a mis au jour cinq fichiers supplémentaires, posés par le pirate le soir de l'attaque, en sept minutes :

  • un fichier footer.php ajouté dans le dossier d'administration, chargé par une ligne ajoutée dans index.php. C'était un voleur d'identifiants : à chaque connexion au back-office, il vérifiait l'e-mail et le mot de passe saisis, puis les envoyait vers googleeanalytics.com, un domaine qui imite Google Analytics ;
  • trois portes dérobées ajoutées à l'intérieur de fichiers de modules existants (liste de souhaits, bandeau cookies) ou dans un script de mise à jour de module.

Pourquoi ces fichiers sont-ils si difficiles à repérer ? Parce que le pirate avait antidaté leur date de modification à 2024 pour qu'ils passent pour d'anciens fichiers, et parce que les fichiers de modules tiers ne figurent pas dans l'archive officielle de PrestaShop : une simple comparaison avec les fichiers du CMS ne les signale pas.

Ce qui les a trahis : la date de changement d'état du fichier (ctime sous Linux), qu'on ne peut pas modifier à la main comme la date de modification. Une recherche de tous les fichiers dont le ctime tombe dans la fenêtre de l'attaque a donné exactement ces cinq fichiers, et aucun autre. La comparaison avec notre copie de référence a confirmé chaque modification.

Les cinq fichiers ont été retirés avec la même procédure (preuves, quarantaine, restauration, tests). Un voleur d'identifiants rappelle une règle simple : changer les mots de passe ne sert que si plus rien sur le serveur ne peut les intercepter. On change donc les accès après le retrait complet, et on les transmet par téléphone, jamais par e-mail.

La méthode à retenir : après une compromission, on ne se contente pas de comparer avec les fichiers officiels du CMS. On compare aussi avec une copie complète prise avant l'intervention, on cherche par ctime et pas seulement par date de modification, et on refait un contrôle quelques jours plus tard.

Faut-il prévenir la CNIL après le piratage d'une boutique ?

Le pirate a consulté des coordonnées de clients : noms, adresses, e-mails, téléphones. Pour le RGPD, c'est une violation de données personnelles. La CNIL demande au responsable du traitement, ici la commerçante, de la notifier au plus tard 72 heures après en avoir pris connaissance si elle présente un risque pour les personnes, et d'informer les personnes en cas de risque élevé.

Notre rôle n'est pas de décider à la place du commerçant, mais de lui donner les faits pour décider : ce qui a été consulté, ce qui ne l'a pas été, les preuves, la chronologie. Nous lui avons remis un dossier complet qui peut servir à une notification ou à une plainte. Si vous êtes dans ce cas, la procédure est sur le site de la CNIL.

Pourquoi la migration vers PrestaShop 9.2 règle le problème à la racine

Nettoyer un PrestaShop 1.6 remet le site en état, mais les failles qui ont permis l'intrusion restent. La migration change la donne pour plusieurs raisons :

  • Aucun fichier de l'ancien site n'est repris. La boutique 9.2 est installée à neuf : cœur, thème et modules. Les portes dérobées cachées dans les fichiers ne peuvent pas suivre.
  • Les données sont contrôlées avant import. Nous avons analysé les 460 colonnes de texte migrées à la recherche de code actif (scripts, iframes). Le seul contenu actif trouvé : des vidéos YouTube légitimes dans des fiches produits.
  • Le serveur change de génération. PrestaShop 9 fonctionne avec PHP 8.1 et plus. Plusieurs des portes dérobées trouvées reposaient sur la fonction PHP create_function, supprimée depuis PHP 8.0 : elles ne fonctionneraient même plus.
  • La boutique redevient maintenable. Une version supportée reçoit des correctifs de sécurité, et une maintenance peut les appliquer au fil de l'eau.

D'ici janvier, la boutique actuelle reste sous surveillance. La migration à blanc est déjà faite : chiffre d'affaires identique au centime sur toutes les années, et les clients garderont leur mot de passe actuel. Notre page migration vers PrestaShop 9 détaille la méthode.

Et la faille PHP « php2shell » d'octobre 2026 ?

Le 21 octobre 2026, le projet PHP a corrigé deux failles critiques, CVE-2026-109618 et CVE-2026-109619, surnommées « php2shell » et notées 9,2 sur 10. Elles permettent d'exécuter du code sur le serveur, donc de déposer un webshell, avec une simple requête et sans être connecté, avant même que PrestaShop ne s'exécute.

Un webshell est un fichier qui donne au pirate une interface de commande sur le serveur, comme le indexx.php trouvé dans notre cas. Avec php2shell, le pirate n'a même plus besoin d'une faille de PrestaShop ou d'un module pour l'installer : la faille est dans PHP lui-même, et mettre à jour PrestaShop ne la corrige pas.

Version de PHPSituation
8.2, 8.3, 8.4, 8.5corrigées en 8.2.35, 8.3.36, 8.4.27 et 8.5.12
7.4, 8.0, 8.1plus de version officielle ; le projet PHP fournit seulement des correctifs à compiler soi-même
7.3 et antérieures (dont PHP 7.0)aucun correctif du projet PHP ; seuls certains hébergeurs ou éditeurs proposent une version corrigée

Une boutique PrestaShop 1.6 tourne presque toujours sur PHP 5.6, 7.0 ou 7.1, car elle ne fonctionne pas avec les versions récentes. Elle dépend donc entièrement de son hébergeur pour ce correctif. Sur la boutique de notre cas, l'hébergeur avait recompilé sa version PHP 7.0 le jour même de l'annonce. Ce n'est pas le cas partout : demandez à votre hébergeur s'il a appliqué le correctif à votre version de PHP, ou faites vérifier l'exposition de votre boutique aux failles PrestaShop et PHP.

Le projet PHP le dit clairement : régler session.upload_progress.enabled=0 ferme certains chemins d'attaque, mais seule la mise à jour protège réellement. Une boutique PrestaShop 9 accepte PHP 8.4 ou 8.5, des versions maintenues qui ont reçu ce correctif dès sa publication. À noter : PHP 8.2 ne recevra plus de correctifs après le 31 décembre 2026, ce qui compte au moment de choisir la version pour une migration.

Comment savoir si votre boutique PrestaShop est piratée ?

Un piratage PrestaShop ne se voit souvent pas : la boutique tourne et les commandes arrivent. Six contrôles simples permettent de repérer les signes les plus fréquents. Aucun ne remplace une comparaison complète des fichiers, mais un seul signal positif justifie un diagnostic.

ContrôleCe qui doit alerter
Liste des modules (dossier modules/)un module que vous n'avez jamais installé, surtout au nom « officiel » ou « analytics »
Racine du sitedes fichiers PHP inconnus : indexx.php, noms aléatoires, adminer.php
Dossier d'administrationun fichier ajouté (par exemple footer.php) ou un index.php qui charge un fichier inconnu
Comptes du back-officeun employé que vous ne connaissez pas, ou des connexions à des heures où personne ne travaillait
VersionPrestaShop 1.6 ou 1.7, PHP inférieur à 8.1
Postes du magasinun ordinateur sous Windows 7 ou sans antivirus qui sert à se connecter au site ou à lire les e-mails

Si un de ces points vous inquiète, ne supprimez rien vous-même : vous effaceriez les preuves et vous risquez d'en oublier. Notre procédure complète est décrite dans Boutique PrestaShop piratée : la procédure de nettoyage.

En résumé

  • Une boutique PrestaShop 1.6 peut être compromise pendant plus d'un an sans aucun signe visible.
  • L'attaque d'octobre 2026 a été détectée parce que la migration commence par une copie complète et vérifiée du site.
  • Un pirate soigneux antidate ses fichiers : la recherche doit aussi porter sur le ctime, et un contrôle de suivi est indispensable.
  • Le poste de travail qui se connecte au back-office fait partie de la surface d'attaque.
  • Depuis php2shell (octobre 2026), une vieille version de PHP suffit à exposer la boutique, quel que soit l'état de PrestaShop.
  • Nettoyer remet en état, migrer vers une version supportée supprime la cause.

Votre boutique tourne encore en PrestaShop 1.6 ou 1.7, ou vous avez un doute sur un fichier ? Envoyez-nous l'adresse du site : nous faisons un diagnostic de sécurité gratuit, et en cas de piratage avéré, nous intervenons sur devis écrit (nettoyage d'une boutique PrestaShop piratée). Pour la suite, la maintenance PrestaShop applique les correctifs au fil de l'eau.

Sources

  • PrestaShop, « 1.6.1.x: what's next », blog des développeurs, 4 juillet 2019 : build.prestashop-project.org (consulté le 24 octobre 2026)
  • PrestaShop, prérequis système de PrestaShop 9 : devdocs.prestashop-project.org (consulté le 24 octobre 2026)
  • PHP, annonce de sécurité du 21 octobre 2026 (CVE-2026-109618, CVE-2026-109619) : php.net (consulté le 24 octobre 2026)
  • PHP, branches non supportées : php.net/eol.php (consulté le 24 octobre 2026)
  • PHP, documentation de create_function : php.net (consulté le 24 octobre 2026)
  • CNIL, « Notifier une violation de données personnelles » : cnil.fr (consulté le 24 octobre 2026)
  • Cybermalveillance.gouv.fr, « Défiguration de site Internet, que faire ? » : cybermalveillance.gouv.fr (consulté le 24 octobre 2026)

Questions fréquentes

Comment savoir si ma boutique PrestaShop 1.6 est piratée ?

Souvent, rien ne se voit. Cherchez un module que vous n'avez pas installé, des fichiers PHP inconnus à la racine ou dans le dossier d'administration, et des connexions au back-office à des heures inhabituelles. Une comparaison complète avec les fichiers officiels de votre version reste la méthode fiable.

Nettoyer suffit-il sur un PrestaShop 1.6 ?

Le nettoyage remet le site en état et coupe les accès volés, mais les failles de la version 1.6, sans correctif officiel depuis le 30 juin 2019, restent ouvertes. Seule une migration vers une version maintenue supprime la cause.

Faut-il prévenir la CNIL après un piratage ?

Si des données personnelles de clients ont été consultées ou copiées et que cela présente un risque pour eux, le responsable du traitement doit notifier la CNIL au plus tard 72 heures après en avoir eu connaissance, et informer les personnes en cas de risque élevé.

Pourquoi changer les mots de passe une deuxième fois ?

Dans ce cas, le pirate avait installé un voleur d'identifiants sur la page de connexion du back-office. Tant qu'il était en place, chaque nouveau mot de passe saisi lui était transmis. Les accès doivent être changés après la suppression complète des fichiers malveillants.

La faille PHP « php2shell » concerne-t-elle PrestaShop 1.6 ?

Oui. Les failles CVE-2026-109618 et CVE-2026-109619, corrigées le 21 octobre 2026, sont dans PHP lui-même et touchent toutes les versions de PrestaShop. Une boutique 1.6 tourne sur un PHP ancien (souvent 7.0 ou 7.1) que le projet PHP ne corrige plus : seul l'hébergeur peut fournir une version corrigée.

Nicolas Pivaut
Rédigé par

Nicolas Pivaut

Fondateur de WebSentinel, expert WordPress et PrestaShop

Dans le web depuis 2007, Nicolas a fondé WebSentinel en 2015. Il développe, maintient et sécurise lui-même des sites WordPress et PrestaShop pour des TPE, PME et e-commerçants, et intervient aussi sur les serveurs et la cybersécurité.

Articles similaires

Illustration de verrou cassé avec des formes géométriques, au-dessus d'un paysage urbain abstrait avec des messages d'erreur flottant dans l'air, représentant la corruption de la base de données.

Elle pensait son site piraté : c'était une base de données corrompue

Une psychologue croyait son site WordPress repiraté. Le vrai problème : une base de données corrompue par une migration ratée, réparée sans perte de données.

12 août 2026Incidents de sécurité
Éléphant PHP (image originale)

Faille PHP du 21 octobre 2026 : le point et le plan d'action

Deux failles critiques de PHP permettent d'exécuter du code à distance sans compte. Versions corrigées le 21 octobre 2026, qui est exposé, et le plan d'action immédiat.

21 octobre 2026Sécurité
blog-prestashop-directus cover photo

Blog PrestaShop avec Directus : ajouter un blog sans module tiers

Ajouter un blog à PrestaShop avec Directus : base dédiée, API, 1 article par semaine automatisé qui renforce les fiches produits. Quatre forfaits de 1 200 à 4 000 € HT.

17 octobre 2026E-commerce