Offre Durée limitée : -10% sur tout le site* avec le code WELCOME10

Failles critiques PHP : deux RCE d'urgence corrigées (CVE-2026-109618 / 109619)

Publié le 22 octobre 2026 10 min de lecture

Le 21 octobre 2026, l'équipe de sécurité PHP a publié en urgence quatre correctifs (PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35) pour colmater deux failles critiques d'exécution de code à distance : CVE-2026-109618 (corruption mémoire lors d'un dépassement de mémoire) et CVE-2026-109619 (use-after-free dans la gestion des sessions). Classées CVSS v4.0 9.2, elles permettent à un attaquant distant d'exécuter du code sur le serveur sans authentification. Le code vulnérable remonte à PHP 5.4 : toutes les installations PHP servant des requêtes web sont concernées. Un exploit fonctionnel, baptisé php2shell, circule déjà et des tentatives d'exploitation de masse ont été observées dès le 17 octobre, avant même la publication des correctifs. Si vous administrez un VPS Linux ou un serveur dédié avec PHP, la mise à jour est à faire maintenant.

Source : annonce officielle PHP security team (20 octobre 2026, patches publiés le 21 octobre 2026 à 14h UTC).

PHP sur un VPS ou un serveur dédié : pourquoi tout le monde est concerné

PHP propulse la majorité des sites web en production. Sur un VPS typique, PHP traite les requêtes d'un site WordPress, d'une boutique PrestaShop, d'un CMS Joomla, d'un panel d'administration Pterodactyl, ou de tout script PHP personnalisé. Il tourne derrière un serveur web (NGINX via PHP-FPM, Apache avec mod_php, LiteSpeed, FrankenPHP) ou directement via php-cgi. Toute machine exposant une application PHP sur une adresse IP publique est potentiellement vulnérable aux deux CVE publiées.

Les deux failles se situent dans le coeur de PHP, pas dans un framework ou une extension tierce. Elles touchent le traitement des requêtes HTTP multipart et la gestion de l'état des sessions. Concrètement, un attaquant peut déclencher l'exploitation avant même que le code applicatif ne s'exécute. Le fichier php.ini, la configuration du serveur web et la version de PHP installée déterminent le niveau d'exposition.

Les deux CVE critiques en détail

L'équipe de sécurité PHP a attribué un score CVSS v4.0 identique de 9.2 (critique) aux deux vulnérabilités. Voici ce que chacune exploite.

CVE-2026-109618 : corruption mémoire lors d'un dépassement de mémoire (OOM)

Lorsque PHP traite une requête multipart (upload de fichier, formulaire) et que la mémoire allouée au processus atteint la limite définie par memory_limit dans php.ini, les données internes de la requête ne sont que partiellement initialisées. Le nettoyage qui suit l'erreur OOM traite ces données partielles comme valides, ce qui corrompt le tas (heap) et permet l'exécution de code arbitraire. L'attaque fonctionne sur tous les modes de déploiement : PHP-FPM, mod_php, php-cgi, FrankenPHP, LiteSpeed.

CVE-2026-109619 : use-after-free dans session.upload_progress

Cette faille exploite un état résiduel entre deux requêtes traitées par le même worker PHP. Lorsqu'une requête utilise le mécanisme session.upload_progress (activé par défaut dans php.ini), un pointeur vers de la mémoire libérée peut persister après la fin de la requête. La requête suivante, traitée par le même worker, utilise ce pointeur périmé (use-after-free), ce qui corrompt la mémoire et ouvre la porte à l'exécution de code. Sur PHP 8.5, la fonctionnalité fatal_error_backtraces aggrave le risque en exposant davantage d'état interne.

Versions affectées et versions corrigées

Le code vulnérable existe depuis PHP 5.4.0. Voici le récapitulatif des versions concernées et des correctifs disponibles :

Branche PHPVersions vulnérablesVersion corrigéeStatut
PHP 8.5Toutes avant 8.5.128.5.12Supportée
PHP 8.4Toutes avant 8.4.278.4.27Supportée
PHP 8.3Toutes avant 8.3.368.3.36Supportée
PHP 8.2Toutes avant 8.2.358.2.35Supportée (sécurité uniquement)
PHP 8.1 et antérieurToutesAucun correctif officielFin de vie
PHP 7.4 à 8.1ToutesBackports source uniquementFin de vie
PHP 5.4 à 7.3ToutesAucunFin de vie

Point important : PHP 8.1 a atteint sa fin de vie en décembre 2025. PHP 8.0 et antérieur ne reçoivent plus aucune mise à jour de sécurité depuis encore plus longtemps. Si votre VPS tourne sur l'une de ces versions, aucun correctif officiel ne sera publié. La seule solution est de migrer vers PHP 8.2 ou supérieur.

Vérifier votre version de PHP

Connectez-vous en SSH à votre VPS et vérifiez la version de PHP installée :

php -v

Le résultat affiche la version sous la forme PHP 8.3.35 (cli). Si le numéro de version est antérieur à 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 (selon votre branche), votre serveur est vulnérable.

Si PHP tourne via PHP-FPM (cas le plus courant avec NGINX), vérifiez aussi la version du processus en cours :

php-fpm8.3 -v

Adaptez le numéro de version (php-fpm8.4, php-fpm8.2) à votre installation. Vous pouvez aussi vérifier la configuration de session.upload_progress :

php -i | grep session.upload_progress.enabled

Si la valeur est On (valeur par défaut), votre serveur est exposé à la CVE-2026-109619.

Mettre à jour PHP sur votre VPS

La procédure dépend de la distribution Linux et de la source d'installation de PHP. Sur la majorité des VPS sous Ubuntu ou Debian, PHP provient du dépôt d'Ondrej Sury (PPA ppa:ondrej/php) ou des dépôts officiels de la distribution.

Ubuntu et Debian (APT)

Mettez à jour la liste des paquets et installez la version corrigée pour votre branche :

sudo apt update && sudo apt upgrade -y php8.3-*

Remplacez php8.3 par votre branche (php8.4, php8.2, php8.5). Puis redémarrez PHP-FPM pour charger le nouveau binaire :

sudo systemctl restart php8.3-fpm

CentOS, Rocky Linux et Fedora (DNF)

Sur les distributions basées sur Red Hat avec le dépôt Remi :

sudo dnf upgrade -y php php-fpm php-cli

Puis redémarrez le service PHP-FPM :

sudo systemctl restart php-fpm

Vérification après mise à jour

Confirmez que la version installée correspond bien au correctif, puis vérifiez que le service fonctionne :

php -v
sudo systemctl status php8.3-fpm

Si vous utilisez Apache avec mod_php au lieu de PHP-FPM, redémarrez Apache :

sudo systemctl restart apache2

Pour automatiser les futures mises à jour de sécurité sur votre VPS Ubuntu, configurez unattended-upgrades avec le dépôt PHP inclus dans les sources autorisées.

Mitigations temporaires

Si la mise à jour immédiate n'est pas possible (tests de compatibilité en cours, dépendances applicatives), des réglages dans php.ini réduisent l'exposition en attendant.

Contre la CVE-2026-109618 (OOM corruption)

Désactivez la limite de mémoire par requête pour empêcher le déclenchement de l'erreur OOM exploitée par la faille :

; Dans php.ini
memory_limit = -1

Cette mitigation empêche le scénario d'OOM qui déclenche la corruption, mais elle supprime aussi la protection contre les scripts consommant trop de mémoire. Surveillez la RAM de votre VPS avec htop ou btop si vous appliquez ce réglage.

Contre la CVE-2026-109619 (use-after-free)

Désactivez session.upload_progress pour couper le vecteur d'attaque :

; Dans php.ini
session.upload_progress.enabled = 0

Sur PHP 8.5, désactivez également les backtraces sur erreur fatale :

; php.ini (PHP 8.5 uniquement)
zend.fatal_error_backtraces = 0

Après toute modification de php.ini, redémarrez PHP-FPM ou Apache pour appliquer les changements :

sudo systemctl restart php8.3-fpm

Ces mitigations sont des palliatifs. La mise à jour vers une version corrigée reste la seule solution définitive.

PHP 8.1 et antérieur : que faire sans correctif officiel

Si votre VPS fait tourner PHP 8.1, 8.0, 7.4 ou une version plus ancienne, l'équipe PHP ne publiera aucun correctif officiel. Ces branches ont atteint leur fin de vie. Des backports source existent pour PHP 7.4 à 8.1, mais ils nécessitent de compiler PHP soi-même, ce qui n'est pas viable pour la plupart des administrateurs.

La marche à suivre :

  • Migrer vers PHP 8.2 ou supérieur. C'est la seule solution pérenne. Testez la compatibilité de votre application avec php -l sur vos fichiers et consultez les guides de migration de la documentation PHP officielle.
  • Appliquer les mitigations temporaires décrites ci-dessus (session.upload_progress.enabled = 0 et memory_limit = -1) pour réduire l'exposition en attendant la migration.
  • Isoler le serveur : limitez les adresses IP autorisées à accéder au service web via votre pare-feu. Utilisez Fail2ban pour détecter et bloquer les requêtes suspectes.

php2shell : l'exploit est déjà dans la nature

Un proof-of-concept fonctionnel baptisé php2shell cible les deux CVE. Selon Amazon Threat Intelligence, des tentatives d'exploitation ont été observées dès le 17 octobre 2026, quatre jours avant la publication officielle des correctifs. Cloudflare a confirmé des attaques émergentes dès le 21 octobre. L'exploitation vise toutes les méthodes de déploiement : PHP-FPM, Apache mod_php, php-cgi, FrankenPHP et LiteSpeed. mod_php présente le risque le plus élevé, car l'exploitation peut réussir avant que le code applicatif ne s'exécute.

En pratique, cela signifie que chaque heure de retard dans la mise à jour augmente le risque de compromission. Les scanners automatisés balaient les plages d'adresses IP à la recherche de serveurs PHP vulnérables. Même un VPS qui n'héberge qu'un petit site ou un panel d'administration est une cible.

Impact sur les serveurs de jeu et les panels d'administration

Si vous administrez un serveur de jeu FiveM, Minecraft ou Rust sur un VPS, vous utilisez probablement PHP pour le panel d'administration. Pterodactyl et son fork Pelican Panel tournent sur PHP 8.2+. txAdmin (FiveM) n'utilise pas PHP directement, mais si votre VPS héberge aussi un site web ou un autre service PHP (phpMyAdmin, un CMS, un script de monitoring), l'ensemble du serveur est exposé.

Les conséquences d'une compromission :

  • Exécution de code à distance : l'attaquant obtient les privilèges du processus PHP (généralement www-data). Il peut lire les fichiers de configuration (mots de passe MySQL, clés API), modifier le code applicatif, ou installer un webshell.
  • Élévation de privilèges : combinée à une faille locale, la compromission initiale peut mener à un accès root complet. Bases de données, fichiers de sauvegarde, clés SSH : tout le serveur est alors exposé.
  • Rebond : un serveur compromis peut servir de relais pour attaquer d'autres machines sur le même réseau ou envoyer du spam.

Renforcez la sécurité globale de votre VPS : sécurisez l'accès SSH, sauvegardez vos données régulièrement, et configurez un pare-feu UFW avec Fail2ban.

Hébergement mutualisé, Plesk et infogérance

Sur un hébergement mutualisé ou un hébergement web géré, c'est l'hébergeur qui administre PHP. Vous n'avez pas d'accès SSH et ne pouvez pas changer la version. Contactez votre hébergeur pour confirmer que le correctif a été déployé.

Si votre serveur utilise Plesk, la mise à jour de PHP se fait via l'interface d'administration de Plesk (Tools & Settings > PHP). Vérifiez que la version proposée intègre le correctif. Plesk permet d'installer plusieurs versions de PHP en parallèle : vous pouvez basculer sur une version corrigée sans attendre la mise à jour de toutes les branches.

Sur un VPS ou un serveur dédié non infogéré, la mise à jour vous revient entièrement. C'est la contrepartie de l'accès root et de la liberté de configuration.

Bonnes pratiques de sécurité PHP sur VPS

Ces failles rappellent l'importance d'une hygiène de sécurité rigoureuse pour tout administrateur de serveur PHP :

  • Mises à jour automatiques : configurez unattended-upgrades pour appliquer les correctifs de sécurité dès leur publication.
  • Version PHP supportée : ne restez jamais sur une branche PHP en fin de vie. PHP 8.2 est la plus ancienne branche encore maintenue (sécurité uniquement). Planifiez vos migrations avant la date de fin de support.
  • Configuration minimale : dans php.ini, désactivez les fonctions inutiles (disable_functions), limitez expose_php à Off, et restreignez open_basedir au répertoire de l'application.
  • Pare-feu : limitez les ports exposés avec UFW ou nftables. Un VPS n'a généralement besoin que des ports 22 (SSH), 80 (HTTP) et 443 (HTTPS).
  • Surveillance : surveillez la RAM et le CPU de votre serveur. Des processus PHP anormaux, des pics de mémoire inexpliqués ou des redémarrages fréquents de PHP-FPM dans les logs peuvent indiquer une tentative d'exploitation.
  • Sauvegardes : sauvegardez vos fichiers et bases de données avant toute mise à jour et à intervalles réguliers. En cas de compromission, une sauvegarde saine permet de restaurer le serveur.

Questions fréquentes

Retrouvez ci-dessous les réponses aux questions les plus courantes des administrateurs de serveurs concernant ces vulnérabilités PHP.

Conclusion

Les deux CVE critiques publiées le 21 octobre 2026 (CVE-2026-109618 et CVE-2026-109619) touchent toutes les installations PHP servant des requêtes web, depuis PHP 5.4 jusqu'aux versions actuelles. Les correctifs sont disponibles dans PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35. L'exploit php2shell circule déjà et l'exploitation de masse est en cours. Si vous administrez un VPS Linux ou un serveur dédié, vérifiez votre version avec php -v, mettez à jour immédiatement, et redémarrez PHP-FPM ou Apache. PHP 8.1 et antérieur ne recevront aucun correctif officiel : si vous êtes sur ces branches, migrez vers PHP 8.2+ sans attendre. Pour aller plus loin dans la sécurisation de votre serveur, consultez nos guides d'administration de VPS Linux.

FAQ

Quelles sont les deux failles critiques PHP publiées en octobre 2026 ?

CVE-2026-109618 est une corruption mémoire lors d'un dépassement de mémoire (OOM) dans le traitement des requêtes multipart. CVE-2026-109619 est un use-after-free dans le mécanisme session.upload_progress. Les deux permettent l'exécution de code à distance sans authentification et sont notées CVSS v4.0 9.2 (critique).

Quelles versions de PHP sont corrigées ?

Les correctifs sont disponibles dans PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35, publiés le 21 octobre 2026. Toutes les versions antérieures de chaque branche sont vulnérables. PHP 8.1 et les versions plus anciennes ne recevront aucun correctif officiel car elles ont atteint leur fin de vie.

Comment vérifier si mon VPS est vulnérable ?

Connectez-vous en SSH et exécutez php -v pour afficher la version installée. Si elle est antérieure à 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 selon votre branche, votre serveur est vulnérable. Vérifiez aussi si session.upload_progress est activé avec php -i | grep session.upload_progress.enabled.

Comment mettre à jour PHP sur Ubuntu ou Debian ?

Exécutez sudo apt update && sudo apt upgrade -y php8.3-* en remplaçant 8.3 par votre branche. Puis redémarrez PHP-FPM avec sudo systemctl restart php8.3-fpm. Vérifiez la nouvelle version avec php -v.

Mon VPS tourne sur PHP 8.1 ou 7.4, que faire ?

PHP 8.1 et les versions antérieures ont atteint leur fin de vie et ne recevront aucun correctif officiel. La seule solution pérenne est de migrer vers PHP 8.2 ou supérieur. En attendant, appliquez les mitigations temporaires : désactivez session.upload_progress.enabled et réglez memory_limit à -1 dans php.ini.

Qu'est-ce que l'exploit php2shell ?

php2shell est un proof-of-concept fonctionnel ciblant les deux CVE PHP. Des tentatives d'exploitation ont été observées dès le 17 octobre 2026, quatre jours avant la publication des correctifs. L'exploit fonctionne sur tous les modes de déploiement PHP : PHP-FPM, mod_php, php-cgi, FrankenPHP et LiteSpeed.

Pterodactyl et les panels de serveurs de jeu sont-ils concernés ?

Oui. Pterodactyl et Pelican Panel tournent sur PHP 8.2+. Si votre VPS héberge un panel d'administration PHP, il est concerné par ces failles. Mettez à jour PHP et redémarrez PHP-FPM pour protéger votre panel et vos serveurs de jeu.

Quelles mitigations appliquer en attendant la mise à jour ?

Contre CVE-2026-109618 : réglez memory_limit = -1 dans php.ini pour empêcher le déclenchement OOM exploité. Contre CVE-2026-109619 : désactivez session.upload_progress.enabled = 0. Sur PHP 8.5, désactivez aussi zend.fatal_error_backtraces = 0. Redémarrez PHP-FPM après chaque modification.