Erreur 500 PrestaShop ou page blanche : que faire tout de suite
Votre boutique affiche une erreur 500 PrestaShop ou une page blanche : que faire sans aggraver, voir la vraie erreur et…
Le 20 octobre, une alerte a mis la moitié d'internet sur le qui-vive : deux failles graves dans PHP, le langage qui fait tourner votre boutique PrestaShop, permettent à un inconnu de prendre le contrôle du serveur sans identifiant ni mot de passe. On les appelle PHP2Shell. PHP a publié le correctif le 21 octobre, et ce que vous devez faire dépend d'une seule chose : la version de PHP sur laquelle tourne votre boutique.
On vous explique tout sans jargon : ce qui s'est passé, comment savoir si vous êtes concerné, quoi faire aujourd'hui et quoi faire si votre boutique tourne sur une version qui ne reçoit pas le correctif.
PHP est le moteur qui se trouve sous PrestaShop, WordPress, Magento et la plupart des boutiques et des sites du monde. Les deux failles, enregistrées sous les références CVE-2026-109618 et CVE-2026-109619, ont une note de gravité de 9,2 sur 10. Concrètement, celui qui sait les exploiter peut exécuter ce qu'il veut sur votre serveur : laisser une porte dérobée, voler les données de vos clients ou glisser dans votre boutique un faux captcha comme celui de ClickFix.
Ce qui distingue PHP2Shell des autres alertes, c'est que l'attaque ne passe ni par PrestaShop ni par aucun module. Elle se produit dans PHP, avant même que votre boutique ne lise la visite. Peu importe le soin que vous y apportez : si le PHP du serveur est vulnérable, la boutique l'est aussi.
Et l'information avait fuité avant l'heure. La société de sécurité Sansec explique qu'avec l'alerte est apparue la capture d'un outil d'attaque déjà prêt, et elle s'attendait à des attaques massives dès la publication du correctif. Selon la même source, Cloudflare avait déjà repéré les premières tentatives et a mis en place des règles pour les bloquer.
Très probablement, oui. Dans son bulletin de sécurité, PHP considère comme exposée toute installation qui sert des pages web, quelle que soit la façon dont le serveur l'exécute, et le risque le plus élevé concerne les serveurs Apache avec mod_php, où une attaque fonctionnant sans identifiant ni mot de passe a déjà été démontrée. Sansec parle de tout serveur sous PHP 5.4 ou plus récent, c'est-à-dire, en pratique, toutes les boutiques PrestaShop en ligne aujourd'hui.
La question qui compte vraiment est une autre : recevez-vous le correctif ? PHP a corrigé les failles dans les versions 8.2.35, 8.3.36, 8.4.27 et 8.5.12. PHP 8.1 et les versions antérieures ne reçoivent plus de mises à jour officielles : pour 7.4, 8.0 et 8.1, PHP a mis à disposition un correctif minimal à compiler à la main, et certains fournisseurs de support étendu l'intègrent à leurs paquets. Or chaque version de PrestaShop ne fonctionne qu'avec certaines versions de PHP :
Autrement dit : si votre boutique n'est pas sous PrestaShop 9, il n'y a pas de mise à jour officielle à installer, car votre version de PrestaShop ne peut pas fonctionner avec un PHP qui l'a reçue. Reste le correctif minimal, qui est un travail de technicien et qui ne vous protégera pas non plus de la prochaine faille.
Connectez-vous au back-office de votre boutique et ouvrez Paramètres avancés → Informations. Vous y verrez la version de PrestaShop et, un peu plus bas, celle de PHP. Avec ces deux numéros, vous savez déjà dans quel cas vous êtes.
Passer la boutique en maintenance depuis le back-office ne vous protège pas cette fois : PHP lit la visite avant que PrestaShop ne décide d'afficher la page de maintenance.
PHP propose des réglages du serveur qui ferment certaines voies d'attaque, et prévient qu'ils ne suffisent pas à sécuriser la boutique : seule la mise à jour le fait. Sansec ajoute une autre mesure d'urgence : bloquer sur le serveur le type d'envoi qui transporte les fichiers qu'on téléverse sur un site. Elle a un prix : tant qu'elle est en place, personne ne peut envoyer de fichiers sur votre boutique. Ni vous les photos d'un nouveau produit, ni vos clients une pièce jointe dans le formulaire de contact. La boutique continue de vendre normalement.
Cela sert à gagner quelques jours, pas à rester ainsi. La prochaine fois qu'une faille sortira dans PHP — et il y en aura —, votre boutique se retrouvera dans la même situation, car PHP 8.1 et les versions antérieures ne reçoivent plus de mises à jour.
C'est la question qu'on repousse toujours parce que la boutique fonctionne. PHP2Shell, c'est ce qui arrive quand on la repousse trop longtemps : le jour où le problème arrive, ce n'est pas vous qui le choisissez, et le correctif n'est pas à votre portée.
Passer à PrestaShop 9 vous place sur un PHP qui reçoit des correctifs pendant des années. Cela se fait sans fermer la boutique, vous gardez vos produits, vos clients, vos commandes et vos positions sur Google, et une petite boutique coûte à partir de 690 €. On vous explique tout dans mettre à jour PrestaShop 1.7 ou 1.6 vers 9, et sur notre page de migration de PrestaShop 1.6 et 1.7 vers 9.
Et si vous préférez ne pas avoir à surveiller ce genre d'alertes, c'est exactement ce que couvre un contrat de maintenance : quelqu'un qui met à jour PHP, PrestaShop et les modules pour vous, et qui vous prévient avant que le problème n'atteigne votre boutique.
Versions corrigées : 8.2.35, 8.3.36, 8.4.27 et 8.5.12. Pour 7.4, 8.0 et 8.1, PHP publie des branches avec le correctif minimal en code source, liées depuis son bulletin ; ce ne sont pas des versions officielles. Les mesures partielles données par PHP, dans le php.ini, dans le pool PHP-FPM (php_admin_value) ou dans la configuration du serveur, jamais avec ini_set() ni .user.ini, puis en redémarrant tous les processus :
; CVE-2026-109618
memory_limit = -1
post_max_size = 32M ; 8M si aucun fichier n'est envoyé
; CVE-2026-109619
session.upload_progress.enabled = 0
; uniquement en PHP 8.5
fatal_error_backtraces = 0
PHP demande de ne pas remplacer memory_limit par des limites du système (RLIMIT_AS, RLIMIT_DATA). La mesure de Sansec, bloquer multipart/form-data (elle casse tous les envois de fichiers, back-office compris), sous Apache :
RewriteEngine On
RewriteCond %{HTTP:Content-Type} multipart/form-data [NC]
RewriteRule ^ - [F]
Sous Nginx :
if ($http_content_type ~* "multipart/form-data") {
return 403;
}
Avec les paquets du dépôt Remi (courant sous RHEL, AlmaLinux ou Rocky), Sansec prévenait que la mise à jour n'arrivait pas le jour même : vérifier la version installée avec php -v. Avec Cloudflare, limiter le port 443 de l'origine à ses plages d'IP ; sinon, l'attaque arrive directement sur l'IP du serveur.
Si vous ne savez pas dans quel cas vous êtes, si votre hébergeur ne vous répond pas ou si votre boutique est en 1.6, 1.7 ou 8 et que vous voulez en sortir, indiquez-nous votre version de PrestaShop et celle de PHP. On vous dit quoi faire aujourd'hui et, si besoin, on vous donne un prix ferme pour passer à PrestaShop 9.
Votre boutique affiche une erreur 500 PrestaShop ou une page blanche : que faire sans aggraver, voir la vraie erreur et…
Ce que comprend la maintenance d’une boutique PrestaShop, combien d’heures prévoir et son prix par an : trois formules…
Mettre à jour PrestaShop 1.6 ou 1.7 vers la version 9 sans fermer la boutique : ce que vous gardez, vos modules, Google…
Un module, une application, un serveur qui pose problème ou quelque chose d’urgent. Nous répondons sous 24 heures, avec un devis ferme, prix et date compris.