đŸ›Ąïž Faille critique dans PHP (PHP2Shell) : comment savoir si votre site est concernĂ© et le protĂ©ger

🌐 Français · English · Ű§Ù„ŰčŰ±ŰšÙŠŰ©

Deux failles critiques de PHP permettent d'exĂ©cuter du code sur un serveur sans aucun identifiant. Voici comment vĂ©rifier en quelques minutes si votre site est concernĂ©, le corriger proprement, et ne plus jamais ĂȘtre pris de court par la prochaine.

Mis Ă  jour : 22 octobre 2026

En bref

1. Ce qui s'est passé

Le 21 octobre 2026, l'équipe de PHP a publié un avis de sécurité titré « vulnérabilités critiques d'exécution de code à distance, mettez à jour maintenant ». Il corrige deux failles distinctes, chacune notée 9,2 sur 10 (CVSS v4) :

FailleNature (sans détail technique)Avis officiel
CVE-2026-109618Corruption de données internes quand PHP manque de mémoireGHSA-w8hw-w9fx-j79w
CVE-2026-109619Un Ă©tat interne qui survit d'une requĂȘte Ă  la suivanteGHSA-6wmf-4rv5-p3rp

Ce qu'elles permettent : dans certaines conditions, une simple requĂȘte envoyĂ©e Ă  votre site, sans compte ni mot de passe, peut faire exĂ©cuter du code par le serveur, avec les droits du site. En clair : prise de contrĂŽle du site, vol de la base de donnĂ©es, installation de pages malveillantes.

Qui est exposé : selon l'avis officiel, toutes les installations PHP qui servent des pages web, quel que soit le mode : PHP-FPM, Apache avec mod_php, php-cgi, FrankenPHP, LiteSpeed. L'équipe de PHP considÚre le risque le plus élevé avec mod_php.

Pourquoi c'est urgent : les identifiants des failles ont fuité sur un forum la veille de la publication officielle, avant la fin de l'embargo. Une fois qu'une faille aussi grave est publique et que le correctif est disponible, d'autres peuvent étudier les changements et chercher à les exploiter. Mieux vaut considérer que les robots qui scannent Internet à la recherche de serveurs non corrigés vont s'y intéresser rapidement.

Les versions corrigées :

Et les versions plus anciennes ? PHP 8.1 et les versions prĂ©cĂ©dentes ne reçoivent plus de mises Ă  jour officielles. L'Ă©quipe de PHP a tout de mĂȘme fourni des correctifs minimaux pour 7.4, 8.0 et 8.1 aux distributions et aux Ă©diteurs qui assurent un support Ă©tendu. ConcrĂštement, si votre serveur utilise le PHP fourni par sa distribution Linux (AlmaLinux, Rocky, Red Hat, Debian, Ubuntu
), c'est la mise Ă  jour du paquet de la distribution qui compte, pas le numĂ©ro de version affichĂ©. Par exemple, AlmaLinux a publiĂ© dĂšs le 21 octobre une mise Ă  jour de son paquet PHP 8.0 qui corrige les deux failles, alors que le numĂ©ro « 8.0.30 » ne change pas.

À retenir. PHP 8.2 arrive en fin de vie le 31 dĂ©cembre 2026. Si vous ĂȘtes encore en 8.2 ou plus ancien, cette faille est le bon moment pour planifier le passage Ă  8.3 ou plus rĂ©cent.

2. Suis-je concerné ?

La réponse dépend de la façon dont votre site est hébergé. Trouvez votre cas.

Hébergement mutualisé (cPanel, Plesk, hPanel
)

C'est le cas le plus fréquent pour les petits sites. Vous ne gérez pas le serveur : c'est votre hébergeur qui installe les correctifs de PHP. Votre rÎle :

  1. VĂ©rifiez la version choisie pour votre site dans le panneau : « Select PHP Version » ou « MultiPHP Manager » sur cPanel, « ParamĂštres PHP » sur Plesk, « Configuration PHP » sur hPanel. Notez la branche (8.1, 8.2, 8.3
).
  2. Si vous ĂȘtes en 8.1 ou plus ancien, passez Ă  8.3 ou plus rĂ©cent, aprĂšs avoir vĂ©rifiĂ© que votre thĂšme et vos extensions le supportent (voir plus bas).
  3. Écrivez au support de votre hĂ©bergeur : « Avez-vous appliquĂ© les correctifs PHP du 21 octobre 2026 (CVE-2026-109618 et CVE-2026-109619) sur mon serveur ? ». Un hĂ©bergeur sĂ©rieux rĂ©pond clairement et rapidement. S'il ne sait pas de quoi vous parlez, c'est une information prĂ©cieuse sur sa fiabilitĂ©.

Site WordPress

Dans votre tableau de bord : Outils → SantĂ© du site → Infos → Serveur. La ligne « Version de PHP » indique la version utilisĂ©e par votre site. Sur un hĂ©bergement mutualisĂ©, ce numĂ©ro ne dit pas toujours si le correctif est appliquĂ© (voir l'encadrĂ© sur les distributions plus haut) : en cas de doute, posez la question Ă  l'hĂ©bergeur.

Avant de changer de branche de PHP, vérifiez que votre thÚme et vos extensions sont à jour, et faites une sauvegarde. Les extensions abandonnées depuis des années sont souvent celles qui bloquent un passage à une version récente.

Serveur VPS ou dédié

Vous ĂȘtes l'administrateur : c'est Ă  vous d'agir. Le piĂšge principal est qu'un serveur peut avoir plusieurs versions de PHP installĂ©es en mĂȘme temps, et que la commande php -v n'indique que celle de la ligne de commande, pas forcĂ©ment celle qui sert vos sites.

Vérifiez dans l'ordre :

1. Les versions installées :

# AlmaLinux, Rocky, Red Hat
rpm -qa | grep -E '^php[0-9]*(-php)?-(common|fpm)'

# Debian, Ubuntu
dpkg -l | grep -E 'php[0-9.]*-(common|fpm)'

2. Les services PHP-FPM actifs (ce sont eux qui exécutent vos sites) :

systemctl list-units --type=service --state=running | grep -i php

3. Quelle version sert chaque site : regardez dans la configuration de votre serveur web vers quel « pool » PHP-FPM chaque site envoie ses requĂȘtes, puis Ă  quelle version appartient ce pool. Sur un panneau comme Virtualmin, cPanel ou Plesk, l'information est aussi affichĂ©e dans les rĂ©glages de chaque domaine.

4. Les mises Ă  jour disponibles :

# AlmaLinux, Rocky, Red Hat
dnf check-update 'php*'

# Debian, Ubuntu
apt update && apt list --upgradable | grep -i php

Si une mise à jour de PHP est proposée, considérez-vous comme concerné jusqu'à preuve du contraire.

Le réflexe à proscrire : la page phpinfo publique

Pour connaßtre leur version, beaucoup créent un fichier info.php contenant phpinfo(). Ne le laissez jamais en ligne. Cette page affiche la version exacte, les extensions, les chemins du serveur et une partie de la configuration : c'est une carte précieuse pour un attaquant. Si vous devez l'utiliser, faites-le quelques secondes, puis supprimez le fichier. La page « Santé du site » de WordPress ou la ligne de commande sont de bien meilleures options.

3. Corriger

Mettre Ă  jour

Sur un VPS, l'opération tient en une commande :

# AlmaLinux, Rocky, Red Hat
dnf upgrade 'php*'

# Debian, Ubuntu
apt update && apt install --only-upgrade 'php*'

Avant, si vous gĂ©rez des sites importants, faites une sauvegarde (base de donnĂ©es et fichiers). Une mise Ă  jour de correctif Ă  l'intĂ©rieur d'une mĂȘme branche (par exemple 8.3.35 vers 8.3.36) casse trĂšs rarement quelque chose, mais une sauvegarde ne coĂ»te que quelques minutes.

Redémarrer PHP : l'étape que tout le monde oublie

Installer les nouveaux paquets ne remplace pas le PHP qui tourne déjà : les processus PHP-FPM en cours d'exécution gardent l'ancienne version, vulnérable, en mémoire, parfois pendant des semaines. Il faut redémarrer chaque service PHP-FPM :

systemctl restart php-fpm            # le nom exact dépend de votre installation
systemctl restart php8.3-fpm         # Debian, Ubuntu

Avec mod_php, c'est Apache qu'il faut redémarrer.

Puis vérifiez que les processus en cours ont bien démarré aprÚs la mise à jour :

ps -eo pid,lstart,cmd | grep "php-fpm: master"

L'heure de dĂ©marrage doit ĂȘtre postĂ©rieure Ă  la mise Ă  jour. Sur les systĂšmes Red Hat et dĂ©rivĂ©s, la commande dnf needs-restarting -s liste aussi les services qui utilisent encore d'anciennes versions.

Vérifier chaque site

Ne vous contentez pas de la page d'accueil, qui est souvent servie depuis un cache. Pour chaque site, testez :

Sur un serveur que j'administre, j'ai comparé pour chaque site la réponse avant et aprÚs la mise à jour : tout était identique, et aucune erreur n'est apparue dans les journaux.

4. Atténuer si vous ne pouvez pas mettre à jour tout de suite

L'avis officiel est clair : seule la mise à jour corrige complÚtement ces failles. Les mesures ci-dessous réduisent certains chemins d'attaque, elles ne rendent pas un serveur sûr. Elles servent à tenir quelques heures, le temps d'organiser la mise à jour.

L'avis officiel mentionne aussi d'autres réglages liés à la mémoire, mais ils ont des effets de bord importants : ne les appliquez pas sans bien comprendre leurs conséquences sur votre serveur.

5. Ai-je été compromis ?

Si votre serveur a Ă©tĂ© corrigĂ© rapidement, le risque est faible. Mais si vous ĂȘtes restĂ© plusieurs jours avec une version vulnĂ©rable, prenez dix minutes pour vĂ©rifier quelques signes, sans paniquer.

find /chemin/du/site -name '*.php' -newermt '2026-10-20' -not -path '*/cache/*'

Sur un WordPress, un fichier PHP dans wp-content/uploads est presque toujours suspect.

Si vous trouvez quelque chose : ne vous contentez pas de supprimer le fichier. Mettez le site en maintenance, changez tous les mots de passe (administration, base de donnĂ©es, FTP, hĂ©bergement), restaurez une sauvegarde saine antĂ©rieure Ă  l'incident si vous en avez une, mettez tout Ă  jour, puis surveillez. Si vous n'ĂȘtes pas sĂ»r de vous, faites appel Ă  un professionnel : un nettoyage partiel laisse souvent une porte dĂ©robĂ©e.

6. Ne plus ĂȘtre pris de court

Les mises à jour de sécurité automatiques

Sur un serveur, activez l'installation automatique des correctifs de sécurité :

Le piÚge que j'ai découvert

Sur un serveur que j'administre, PHP ne vient pas de la distribution mais d'un dépÎt tiers trÚs répandu (le dépÎt de Remi Collet), qui permet d'installer plusieurs versions récentes de PHP. Ce dépÎt publie ses correctifs rapidement, mais ne les étiquette pas comme « mises à jour de sécurité » dans les métadonnées que lisent les outils automatiques. Résultat : un réglage « installer seulement les mises à jour de sécurité » aurait ignoré la correction de PHP2Shell, alors que le serveur avait l'air protégé.

La solution que j'ai mise en place, et que je recommande :

  1. une tùche nocturne qui applique les correctifs de sécurité de la distribution et, explicitement, les mises à jour des paquets PHP (dnf upgrade --security puis dnf upgrade 'php*') ;
  2. le redémarrage automatique de PHP-FPM quand PHP a été mis à jour ;
  3. un contrÎle de chaque site aprÚs l'opération, avec une alerte si l'un d'eux ne répond plus.

Les mises Ă  jour de correctif Ă  l'intĂ©rieur d'une mĂȘme branche de PHP sont conçues pour ne rien casser. Les automatiser est raisonnable ; les changements de branche (8.3 vers 8.4, par exemple), eux, restent une dĂ©cision Ă  prendre Ă  la main, aprĂšs des tests.

Surveiller les annonces

Checklist

FAQ

Mon site WordPress est-il concernĂ© mĂȘme s'il est Ă  jour ?

Oui, potentiellement. La faille est dans PHP, le langage qui fait tourner WordPress, pas dans WordPress lui-mĂȘme ni dans vos extensions. Un WordPress parfaitement Ă  jour sur un PHP vulnĂ©rable reste exposĂ©.

Mon hébergeur s'en occupe-t-il automatiquement ?

Sur un hébergement mutualisé, c'est son rÎle, et les hébergeurs sérieux appliquent ce type de correctif en priorité. Mais vérifiez : demandez-lui explicitement s'il a appliqué les correctifs du 21 octobre 2026. Sur un VPS ou un serveur dédié, personne ne le fera à votre place.

J'ai mis Ă  jour PHP, est-ce suffisant ?

Seulement si PHP a été redémarré ensuite. Tant que les processus PHP-FPM (ou Apache avec mod_php) n'ont pas redémarré, l'ancienne version vulnérable continue de servir vos pages.

php -v affiche une version ancienne, suis-je forcément vulnérable ?

Pas forcément. D'abord, cette commande montre la version de la ligne de commande, qui n'est pas toujours celle qui sert vos sites. Ensuite, les distributions Linux corrigent souvent leurs paquets sans changer le numéro de version : c'est la date et le détail du paquet qui comptent.

Désactiver session.upload_progress me protÚge-t-il ?

En partie seulement. L'avis officiel indique que cela bloque les chemins d'attaque confirmés liés aux sessions pour l'une des deux failles, pas les autres variantes, et rien pour la seconde faille. C'est une mesure d'attente, pas une correction.

Je suis encore en PHP 7.4 ou 8.0, que faire ?

Ces versions ne reçoivent plus de mises à jour officielles. Si votre PHP vient d'une distribution qui assure un support étendu, vérifiez que son paquet a reçu le correctif. Sinon, la vraie solution est de passer à une version supportée : c'est un chantier à prévoir, car d'anciens thÚmes ou extensions peuvent nécessiter des adaptations.

Comment savoir si on a tenté d'exploiter la faille sur mon site ?

Il n'existe pas de signature simple et universelle. Regardez les signes de compromission décrits plus haut (fichiers récents, comptes inconnus, tùches planifiées, comportement anormal). En cas de doute sérieux, faites analyser le serveur par un professionnel.

Sources

Besoin d'aide ?

Je peux vérifier et corriger votre serveur ou votre hébergement, mettre en place des mises à jour de sécurité automatiques fiables et surveiller vos sites au quotidien. Voir le service maintenance et hébergement ou me contacter. Pour un premier diagnostic gratuit de votre domaine, essayez le bilan de santé d'un domaine.

← Tous les guides

← Tous les guides