CRITIQUE CVSS 9.2 Patchs officiels publiés le 21 oct 2026 Exploitation active signalée

Votre site PHP est-il exposé à php2shell ? (CVE-2026-109618 & 109619)

Vérificateur de vulnérabilité en ligne gratuit, matrice des versions PHP sécurisées minimales (8.5.12, 8.4.27, 8.3.36, 8.2.35) et guides de correctifs.

Vérification passive : envoie une requête GET unique non destructive pour inspecter les en-têtes HTTP. Aucun exploit, aucun corps POST.

Versions PHP Officielles Affectées et Corrigées

Source : Versions de sécurité officielles de php.net et avis GitHub (publiés le 21 octobre 2026).

Branche PHP Portée Vulnérable Première Version Corrigée Statut Officiel & Action Requise
PHP 8.5 < 8.5.12 8.5.12 Support Actif — Mettre à niveau vers 8.5.12+
PHP 8.4 < 8.4.27 8.4.27 Support Actif — Mettre à niveau vers 8.4.27+
PHP 8.3 < 8.3.36 8.3.36 Support Actif — Mettre à niveau vers 8.3.36+
PHP 8.2 < 8.2.35 8.2.35 Sécurité uniquement (Fin déc 2026) — Mettre à niveau vers 8.2.35+
PHP 8.6 < 8.6.0RC4 8.6.0RC4 RC de Développement — Tests uniquement, pas en production
PHP 8.1, 8.0, 7.4 Toutes les versions Aucune version officielle Fin de Vie (EOL) — Vulnérable sauf si rétro-porté par le fournisseur
PHP 5.4 – 7.3 Toutes les versions Aucun correctif disponible Obsolète et Vulnérable — Aucun correctif — désactiver session.upload_progress
Note importante sur les paquets des distributions Linux :

Ubuntu, Debian et RHEL rétro-portent les correctifs sans changer le numéro de version principal (ex. Ubuntu 22.04 fournit 8.1.2-1ubuntu2.28). Vérifiez le changelog de votre paquet avant de paniquer.

Agissez Maintenant : Protocole de Résolution en 4 Étapes

Suivez ces étapes dans un ordre strict. Rien d'autre n'offre une protection complète contre PHP2Shell.

01

Identifier chaque environnement PHP

Auditez les serveurs web, conteneurs Docker, images de base et environnements de pré-production. La version CLI (php -v) peut différer de celle réellement exécutée par PHP-FPM ou Apache.

Voir les commandes d'inventaire →
02

Installer une version corrigée

Mettez à niveau vers les versions officielles : 8.5.12, 8.4.27, 8.3.36 ou 8.2.35. Mettre à jour les extensions CMS (WordPress, Drupal, Laravel) ne corrige PAS les failles du moteur PHP.

Choisir le guide de plateforme →
03

Redémarrer tous les démons PHP

ÉTAPE CRITIQUE : Les binaires mis à jour ne sont chargés qu'après le redémarrage des pools de processus. Redémarrez immédiatement PHP-FPM, Apache, FrankenPHP et les workers.

sudo systemctl restart php*-fpm apache2
04

Vérifier et auditer les logs

Confirmez que le serveur web actif renvoie bien la version corrigée. Vérifiez les logs d'accès depuis début octobre 2026 pour détecter d'éventuels crashs anormaux lors d'uploads multipart.

Relancer le diagnostic →

Guides de Correction par Plateforme et Environnement

Commandes de mise à jour étape par étape, vérification du changelog et redémarrage de services adaptés à votre infrastructure.

Commandes de Terminal pour Auto-Diagnostic

Exécutez ces commandes via SSH sur vos serveurs pour déterminer la version réelle du paquet PHP actif :

Ubuntu / Debian : Vérifier les paquets installés et le changelog CVE
dpkg -l 'php*' 'libapache2-mod-php*' | grep ^ii
zgrep -E "CVE-2026-10961[89]" /usr/share/doc/php*-common/changelog*
RHEL / AlmaLinux / Rocky Linux : Inspecter le changelog RPM
rpm -qa | grep -Ei "^(php|ea-php|alt-php)" | sort
rpm -q --changelog php-common | grep -E "CVE-2026-10961[89]"
Docker : Vérifier la version PHP dans un conteneur en cours d'exécution
docker exec -it <container_name> php -v
docker exec -it <container_name> php -m | grep session

Foire Aux Questions (FAQ)

Le vérificateur indique que la version est masquée. Suis-je en sécurité ? ▼

Pas forcément. Masquer X-Powered-By ne fait que cacher la version ; cela ne résout pas la vulnérabilité sous-jacente. Exécutez les commandes CLI directement sur votre serveur.

Cet outil attaque-t-il ou scanne-t-il mon site web ? ▼

Non. Il envoie une seule requête GET normale pour inspecter les en-têtes HTTP de réponse. Il n'émet aucune charge utile d'exploit, aucun corps POST et n'effectue aucun scan de fichiers.

Existe-t-il une solution temporaire si je ne peux pas mettre à jour aujourd'hui ? ▼

Oui. Désactiver session.upload_progress.enabled = Off dans votre php.ini global et recharger PHP-FPM neutralise le vecteur principal du UAF. Cependant, la mise à jour officielle de PHP reste la seule solution complète.

Pourquoi dois-je redémarrer PHP-FPM ou Apache après la mise à niveau ? ▼

La mise à jour des paquets ne remplace que les fichiers sur le disque. Les processus workers actifs conservent le code vulnérable en mémoire vive tant que les services ne sont pas redémarrés.

Un Web Application Firewall (WAF) bloque-t-il complètement PHP2Shell ? ▼

Non. Bien que les règles WAF puissent bloquer les signatures connues, les attaquants peuvent modifier les délimiteurs multipart ou fragmenter la requête pour contourner l'inspection.

Les sites sous PHP 7.4 ou 8.0 sont-ils concernés ? ▼

Oui. Toutes les versions de PHP de 5.4 à 8.5 sont vulnérables au UAF RFC1867. Ces branches étant en fin de vie, vous devez appliquer des patchs de distribution ou désactiver upload_progress.

Cette vulnérabilité affecte-t-elle les scripts CLI en ligne de commande ? ▼

L'exécution pure en CLI sans traitement d'envois multipart POST n'est généralement pas exposée. Cependant, les SAPI accessibles via le web (PHP-FPM, Apache mod_php, FrankenPHP, Swoole) sont entièrement vulnérables.

Les plugins de sécurité WordPress peuvent-ils corriger cette faille ? ▼

Non. Les plugins de sécurité s'exécutent dans l'espace utilisateur de PHP APRÈS que le moteur a analysé les requêtes multipart. La faille se déclenche dans le code C natif avant l'exécution des plugins.

Recherche Technique : 20 avis d'experts, analyses du code C et playbooks de défense.