En bref

  • CVE-2026-109619 : vulnérabilité use-after-free (UAF) critique dans PHP (CVSS 9.2) permettant une exécution de code arbitraire à distance sans authentification — seconde composante de PHP2Shell
  • Affecte PHP 8.5.x avant 8.5.12, PHP 8.4.x avant 8.4.27, PHP 8.3.x avant 8.3.36, PHP 8.2.x avant 8.2.35 — exploitation observée avant la divulgation publique
  • Action urgente : mettre à jour PHP immédiatement vers 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 ; appliquer la mitigation session.upload_progress.enabled=0 en attendant

Les faits

Le 21 octobre 2026, l'équipe de sécurité PHP a publié des mises à jour d'urgence corrigeant deux vulnérabilités critiques d'exécution de code à distance, collectivement baptisées PHP2Shell par la communauté de recherche en sécurité. CVE-2026-109619 est la seconde de ces deux failles, complémentaire à CVE-2026-109618 (débordement de mémoire), et tout aussi critique avec un score CVSS v4.0 de 9.2 attribué par l'équipe PHP.

CVE-2026-109619 est une vulnérabilité de type use-after-free (UAF) — utilisation après libération — présente dans le cœur du moteur PHP (CWE-416). La faille survient lorsqu'un état interne lié à une requête HTTP survit après que la mémoire de support a été libérée. Un worker PHP FPM ou CGI traitant plusieurs requêtes successives peut alors réutiliser cet état obsolète pointant vers une zone mémoire désallouée avant que l'initialisation normale ne le réinitialise.

Techniquement, l'état résiduel incriminé est l'état interne de progression d'upload de session (session upload progress). Lorsque la fonctionnalité session.upload_progress est activée (état par défaut dans de nombreuses configurations PHP), les métadonnées associées peuvent persister entre les requêtes dans le même worker. Un attaquant peut exploiter ce comportement en envoyant des requêtes multipart spécialement forgées pour contrôler le contenu de la mémoire libérée et y injecter du code exécutable.

Le vecteur CVSS v4.0 de CVE-2026-109619 est AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H, confirmant qu'aucune authentification ni interaction utilisateur n'est requise pour exploiter la faille depuis le réseau. La seule condition nécessaire est d'atteindre un serveur PHP exposé et de délivrer des requêtes HTTP. Les environnements PHP-FPM et PHP-CGI sont particulièrement exposés.

La chronologie de l'exploitation est préoccupante : selon watchTowr et Huntress, des tentatives d'exploitation de CVE-2026-109619 ont été observées dès le 17 octobre 2026, soit quatre jours avant la divulgation publique et la disponibilité des correctifs. Cette exploitation pré-divulgation suggère une fuite de l'information ou une découverte indépendante par des acteurs malveillants. À partir du 21 octobre, les attaques ont évolué à grande échelle, avec des attaquants adaptant dynamiquement leurs payloads pour contourner les règles de pare-feu applicatif (WAF) selon les données de télémétrie de plusieurs fournisseurs de sécurité.

Le CERT-FR a émis l'alerte CERTFR-2026-ALE-014 le 21 octobre 2026 pour signaler ces deux failles PHP et recommander une mise à jour immédiate. Le Cyber Security Agency of Singapore (CSA) a également émis une alerte le même jour. PHP est au cœur de l'écosystème web mondial : selon les estimations de W3Techs citées par Tenable, environ 77 % des sites web dont le langage côté serveur est connu utilisent PHP. La surface d'attaque globale est donc considérable.

La relation entre CVE-2026-109619 et CVE-2026-109618 mérite d'être précisée : les deux failles ont des mécanismes distincts (UAF pour 109619, débordement out-of-memory pour 109618) mais s'attaquent toutes deux à la gestion de l'état interne des requêtes PHP dans des contextes multi-requêtes. Elles ont été découvertes par les mêmes chercheurs et corrigées dans le même lot de mises à jour de sécurité. L'exploitation de l'une ou l'autre aboutit à une exécution de code arbitraire sur le serveur avec les privilèges du processus PHP.

D'après Datadog Security Labs et SOCRadar, les payloads d'exploitation observés en environnement réel incluent des téléchargements de webshells PHP, des reverse shells, et dans certains cas des déploiements de cryptomineurs ou de logiciels proxy malveillants. L'exploitation à des fins de ransomware n'a pas encore été confirmée au moment de la rédaction, mais reste une menace sérieuse compte tenu de la criticité de la faille et de l'étendue des systèmes exposés.

Impact et exposition

PHP propulse une part considérable des applications web mondiales, incluant WordPress (qui représente à lui seul plus de 40 % des sites web), Drupal, Joomla, Laravel, Symfony et d'innombrables applications métier développées sur mesure. Tous ces environnements sont potentiellement exposés si la version PHP sous-jacente n'est pas à jour.

Les conditions d'exploitation de CVE-2026-109619 sont particulièrement simples : aucun compte utilisateur, aucun plugin spécifique, aucune configuration particulière n'est nécessaire. Seule la version de PHP est déterminante. Les serveurs exécutant PHP en mode CGI ou FPM avec session.upload_progress.enabled activé (valeur par défaut) sont les plus directement vulnérables.

Les hébergeurs mutualisés sont aussi exposés que les serveurs dédiés, car la vulnérabilité est dans le cœur PHP lui-même et non dans les applications. Les environnements Docker et conteneurisés utilisant des images PHP officielles basées sur des versions non patchées sont également concernés. Les fournisseurs d'hébergement ont activement poussé les correctifs pour leurs partenaires d'après les informations disponibles, mais les instances auto-gérées restent une priorité de remédiation.

Recommandations immédiates

  • Mettre à jour PHP vers la version 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 selon la branche utilisée — advisory : PHP Security Releases du 21 octobre 2026 (sans lien externe)
  • Mitigation temporaire avant patching : désactiver session.upload_progress.enabled en ajoutant session.upload_progress.enabled=0 dans php.ini ; sur PHP 8.5 également ajouter fatal_error_backtraces=0
  • Mettre à jour les images Docker PHP officielles et reconstruire les conteneurs concernés
  • Déployer ou mettre à jour les règles WAF pour détecter les tentatives d'exploitation — attention : les attaquants adaptent leurs payloads pour contourner les règles génériques
  • Indicateurs de compromission : surveiller les nouveaux fichiers .php dans les répertoires web (webshells), les connexions sortantes inattendues depuis les processus PHP-FPM, et les pics de charge CPU liés à des processus PHP (cryptomining)
  • PHP 8.1 et antérieures sont en fin de vie et ne recevront pas de correctif — migration vers une version supportée requise d'urgence

⚠️ Urgence

Exploitation active depuis le 17 octobre, avant même la divulgation publique. Attaques à grande échelle signalées depuis le 21 octobre. CERT-FR alerte CERTFR-2026-ALE-014 émise. Tout serveur PHP non patché doit être considéré comme cible active. Patcher immédiatement ou désactiver session.upload_progress en attente du patch.

Comment savoir si je suis vulnérable ?

Vérifiez votre version PHP avec la commande : php -v en ligne de commande, ou en créant un fichier phpinfo() temporaire. Si vous êtes en PHP 8.2.x avant 8.2.35, PHP 8.3.x avant 8.3.36, PHP 8.4.x avant 8.4.27, ou PHP 8.5.x avant 8.5.12, vous êtes vulnérable. PHP 8.1 et antérieures sont en fin de vie et ne recevront aucun correctif — il faut migrer. Pour vérifier si la mitigation est active : grep session.upload_progress.enabled /etc/php*/*/php.ini — la valeur doit être Off ou 0.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.

Demander un audit