Prestashop: une faille de sécurité majeure affecte toutes les boutiques en ligne inférieure à 1.7.8.2

Une faille de sécurité majeure a été détectée et confirmée par l’équipe de Prestashop. Cette faille de type injection SQL est actuellement largement exploitée par les pirates, il est impératif de mettre rapidement à jour votre boutique en ligne Prestashop pour éviter de voir votre boutique en ligne piratée, avec des paiements de vos clients qui seront effectués sur des pages de phishing.

Faille de sécurité majeure sur Prestashop

L’équipe de maintenance de Prestashop a publié un article dans lequel elle précise que toutes les boutiques à partir de la version 1.6.0.10 jusqu’à la 1.7.8.2 sont vulnérables à cette faille. D’ailleurs, les versions 1.7.8.2 et supérieures peuvent elles-aussi être vulnérables si celle-ci utilise du code utilisée par exemple dans un module ou un thème faisant ayant des failles permettant une injection SQL. C’est par exemple le cas d’un module officiel de Prestashop, Wishlist (blockwishlist) dans ses versions 2.0.0~2.1.0.

Comment se protéger (temporairement) de cette faille ?

L’équipe de maintenance propose un Quick Fix nécessitant de supprimer du code dans un fichier de configuration, qui permettra de bloquer la chaîne d’injection SQL. Cette solution temporaire sera complétée plus tard par un patch de sécurité proposé par l’équipe de maintenance.

Attention cependant, cette solution est toujours en cours d’étude: l’équipe de maintenance pense que la faille provient directement du cache Smarty pour MySQL mais sans certitude. Dans tous les cas, la désactivation de cette fonctionnalité de manière hard semble régler le souci auprès d’un client de chez Unlidot récemment infecté.

Manipulation à effectuer pour retirer les lignes de code concernées

Depuis un accès FTP (ou via votre explorateur de fichier sur un panel en ligne), rendez vous dans le dossier config et ouvrez le fichier « smarty.config.php » (config/smarty.config.inc.php).

Dans ce fichier, retirez ou commentez le code suivant:

				
					if (Configuration::get('PS_SMARTY_CACHING_TYPE') == 'mysql') {
    include _PS_CLASS_DIR_.'Smarty/SmartyCacheResourceMysql.php';
    $smarty->caching_type = 'mysql';
}
				
			
Ce code est localisé entre les lignes 43-46 dans les versions 1.7.x, et entre les lignes 40-43 dans les versions 1.6.x.

Protégez votre boutique Prestashop avec Unlidot

Notre équipe est à votre disposition pour la correction de la faille, le nettoyage de votre boutique en ligne infectée et la mise à jour de votre solution.

Comment savoir si vous êtes infecté ?

La raison la plus évidente est l’inaccessibilité à votre tableau de bord et la présence de contenu suspect sur votre boutique en ligne. Il est plus que probable que tout fonctionne parfaitement au niveau du front-end, et que le souci se trouve à la dernière étape : celle du paiement. Les pirates faisant en sorte de contourner vos moyens de paiement pour intégrer le leur et ainsi encaisser le montant à votre place.

Sinon, il n’y a malheureusement pas de manière simple pour vérifier si vous êtes infecté par cette faille. Cependant, certaines informations dans vos logs pourraient vous donner une indication. Par exemple, dans votre access log, vous pouvez avoir ce record qui pourrait confirmer l’infection.

				
					- [14/Jul/2022:16:20:56 +0200] "POST /modules/XXX/XXX.php HTTP/1.1" 200 82772 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14"
 
- [14/Jul/2022:16:20:57 +0200] "GET / HTTP/1.1" 200 63011 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36"
 
- [14/Jul/2022:16:20:58 +0200] "POST /blm.php HTTP/1.1" 200 82696 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
				
			

Note: le nom des fichiers peuvent être différents. Pour l’un de nos clients, le fichier « blm.php » s’appellait « mage.php ».

Un autre symptôme est que vous n’avez plus accès à votre back-end: vous êtes redirigé en boucle vers le formulaire de connexion de votre back-office.

Le symptôme le plus grave (et qui est le but recherché par les pirates) est l’affichage d’un formulaire de paiement frauduleux pour les commandes de vos clients. Le formulaire peut ressembler à celui de PayPal, mais c’est bien un formulaire frauduleux de type phishing qui est présenté. Les clients qui compléteront ce formulaire enverront directement leurs identifiants (e-mails et mot de passe) chez le pirate, qui pourra utiliser ces informations pour effectuer des paiements frauduleux au nom de vos clients.

Je suis infecté(e)! Que faire ?

Si vous êtes infecté(e), la première chose à faire est de vérifier si vous possédez des sauvegardes de vos fichiers. Généralement, une sauvegarde automatique est effectuée par votre hébergeur. C’est par exemple le cas de Infomaniak et OVH. Si votre hébergeur ne propose pas cette fonctionnalité, il est possible que votre prestataire technique ait implémenté une solution de sauvegarde interne.

Si aucune de ces stratégies de sauvegarde de vos fichiers n’est présente, vous pouvez essayer de nettoyer vous-même vos fichiers infectés, en veillant à appliquer le quick-fix.

Nous vous recommandons vivement de faire appel à un prestataire technique comme Unlidot si vous ne vous sentez pas à l’aise avec ces manipulations. Et même si vous l’êtes, n’hésitez pas à faire appel à nous pour faire un audit de sécurité et valider ainsi le nettoyage et la mise en quarantaine de la faille de sécurité.

Cet article vous à plu ? Il peut plaire à vos amis! partagez-le en un clic ❤️

👋, c'est Unlidot !

Woah! Vous êtes arrivé jusqu’ici.
Et si la prochaine étape était de toucher les étoiles ?