Une récente vulnérabilité a été découverte sur PrestaShop. La faille concerne toutes les versions de PrestaShop sauf la version 1.6.1.0 et PrestaShop Cloud. Donc si vous n’avez pas effectué la mise à jour en version 1.6.1.0, il est probable que votre boutique soit vulnérable à ce problème. La faille concerne le core de PrestaShop, donc les thèmes et modules ne sont pas affectés, il devraient fonctionner normalement une fois le correctif en place.

Que peut-il arriver si je ne fais pas de mise à jour ou si je n'applique pas le correctif ?

La faille concerne l'algorithme de génération de mots de passe. Une personne mal intentionnée pourrait ainsi accéder à votre interface admin.
L'attaque n'est pas évidente et pas à la portée de tout le monde, mais mieux vaut s'assurer que votre version est à jour.

Comment faire ?

Voici directement les explications depuis le billet de l'équipe PrestaShop sur le sujet :

L’attaque potentielle n’est pas évidente, mais nous préférons sécuriser votre boutique dès que possible.

Pour ceux qui ne sont pas encore passés à PrestaShop 1.6.1.0, nous vous fournissons plusieurs manières de corriger le problème :

  • Pour les utilisateurs non techniques, nous avons créé le module Security Patch, qui appliquera pour vous le correctif pour les dernières versions des branches 1.4, 1.5 et 1.6. Cela signifie qu’il marchera parfaitement avec PrestaShop 1.4.11.0, 1.5.6.2 et 1.6.0.15, et devrait fonctionner avec les versions plus anciennes de chaque branche.
    Le module fonctionne pour les trois branches: installez-le, activez-le, et il appliquera le correctif !

  • Pour les utilisateurs techniques, ou ceux pour qui le module n’arrive pas à appliquer le correctif, vous pouvez obtenir un patch pour les dernières versions de chaque branche (1.4, 1.5, 1.6) directement sur Github (cliquez ici pour les liens).
    À la différence du module, ces patches ne fonctionnent que sur la dernière version de chaque branche, à savoir les 1.4.11.0, 1.5.6.2 et 1.6.0.14, et aucune autre — pas sans adaptation, en tout cas.
    Si votre boutique n’est pas à jour sur au moins la dernière branche (1.6), nous vous recommandons de mettre à jour vers la dernière version de votre branche (1.4, 1.5) avant d’appliquer le patch.
    Si vous ne pouvez pas faire de mise à jour, il vous revient d’adapter le patch à votre situation propre.

  • Par ailleurs, vous pouvez télécharger les fichiers mis à jour pour les branches 1.4, 1.5 et 1.6. Ils ne contiennent que les fichiers qui ont été changés depuis la dernière version de chaque branche. Cliquez ici pour les liens.
    Si vous n’avez pas fait de modification à ces fichiers vous-mêmes, vous pouvez juste remplacer vos anciens fichiers par les nouveaux.

Enfin, les branches 1.5.x et 1.4.x ont été mises à jour. Dès aujourd’hui, vous pouvez télécharger PrestaShop 1.5.6.3 et 1.4.11.1 depuis la page de téléchargement des versions précédentes.

En résumé, voici à quelles versions le module et le patch s’appliquent :

Branche

Le module corrige…

Le patch corrige…

1.4

1.4.11.0 et précédentes

1.4.11.0 seulement

1.5

1.5.6.2 et précédentes

1.5.6.2 seulement

1.6

1.6.0.14 et précédentes

1.6.0.14 seulement

Dans tous les cas, nous suggérons de toujours garder votre boutique à jour vers la dernière version, la plus sécurisée : au mieux, la 1.6.1.0 ; au pire, la dernière version de la branche 1.4 ou 1.5.

Pour ceux qui ont fortement personnalisé les fichiers Core, veuillez prendre toutes les précautions possibles avant d’installer le module, avant d’appliquer les patches, ou avant de mettre en ligne les fichiers modifiés ! Vous pourriez avoir à adapter le patch à votre installation spécifique.

Veuillez noter que le module ne fonctionnera pas sur toutes les configurations de serveur Windows, et certaines configuration Linux limitées. Dans ce cas, il vous revient d’adapter le patch à votre installation spécifique. Vous trouverez des instructions en anglais dans ce fichier texte.

Et si j'ai une version trop ancienne ?

Certains d'entre vous ont certainement des versions trop anciennes, ou avec le core modifié (et pas forcément dans les règles de l'art avec l'override), les mises à jours sont parfois complexes. Mais il est très important de pouvoir faire une mise à jour de sécurité, prenez donc toujours garde à la manière de coder, d'implémenter, de modifier les classes et modules PrestaShop, ça sera toujours du temps de sauvé en cas de problème comme la découverte de cette faille qui implique une mise à jour. PrestaShop a également publié quelques règles essentielles pour sécuriser à minima sa boutique (version en anglais également disponible). En résumé :

  • Avoir sa boutique (core de PrestaShop et ses modules) toujours à jour,
  • Protéger votre backend avec un mot de passe supplémentaire avec une authentification HTTP (très facile à mettre en place avec Apache ou Nginx),
  • Installer un certificat SSL,
  • Utiliser un nom inhabituel pour le dossier de votre back-office (par exemple, quelque chose de plus unique que /admin1234) ;
  • Utiliser des mots de passe plus complexes que votre date de naissance (et si vous êtes à court d'idée, des sites peuvent générer des passwords pour vous, ex https://strongpasswordgenerator.com/), "123456" est resté le mot de passe le plus utilisé en 2014... pas très secure tout ça !

Dois-je continuer à utiliser PrestaShop ?

Bien entendu ! Et ce n'est pas parce que je suis certifié PrestaShop (développeur et agence), mais parce que c'est un formidable outil open source avec une belle communauté. Je travaille moi-même avec, et je le propose à mes clients depuis 2008. Les corrections et patchs de sécurité sont des choses courantes dans l'univers de l'open source et même si les mots "faille", "vulnérabilité", "attaque" peuvent faire peur, la correction est généralement très facile à appliquer pour être avoir l'esprit tranquille.