En bref

  • CVE-2026-115560 : nouvelle vulnérabilité RCE dans PHP via le gestionnaire de sessions, sans patch disponible à ce jour
  • Systèmes affectés : toutes versions PHP avec session.upload_progress.enabled=On et configurations de session inhabituelles
  • Action urgente : désactiver session.upload_progress via php.ini ou configuration FPM/Apache

Les faits

Deux jours seulement après avoir publié les correctifs d'urgence pour les failles PHP2Shell (CVE-2026-109618 et CVE-2026-109619), l'équipe de sécurité PHP a alerté la communauté le 23 octobre 2026 sur une nouvelle vulnérabilité d'exécution de code à distance : CVE-2026-115560. Cette fois, aucun patch n'est disponible. PHP gère cette correction dans le cadre de son cycle de release régulier plutôt que comme une urgence, ce qui laisse les administrateurs système sans filet de sécurité autre que la mitigation manuelle.

CVE-2026-115560 est liée à la fonctionnalité session upload progress de PHP, contrôlée par la directive INI session.upload_progress.enabled. Cette fonctionnalité, activée par défaut dans de nombreuses distributions, permet à PHP de suivre la progression des uploads de fichiers en stockant des métadonnées dans les sessions. La vulnérabilité survient lorsque des changements inhabituels sont effectués au runtime sur les gestionnaires de sérialisation des sessions, une condition que Astra Security et The Hacker News décrivent comme "peu probable dans les déploiements typiques".

Sur le plan technique, l'exploitation implique une interaction entre la gestion de la progression d'upload et la sérialisation des données de session. Un attaquant peut manipuler les données de progression d'upload pour injecter des objets ou du code sérialisé malveillant qui sera désérialisé et exécuté lors du traitement de la session. La faille est déclenchée par un appel ini_set() en cours d'exécution modifiant le gestionnaire de sérialisation, une opération que les applications malicieusement conçues ou compromises peuvent effectuer.

La divulgation de CVE-2026-115560 intervient dans un contexte de forte pression sur l'équipe PHP. PHP2Shell avait déjà marqué les esprits par sa sévérité (CVSS 9.2) et son exploitation active avant même la publication des patches. La communauté PHP fait face à une série de vulnérabilités critiques en 2026 qui remettent en question la robustesse du moteur de sérialisation et de la gestion mémoire de PHP 8. Selon The Hacker News, CVE-2026-115560 pourrait partager une racine commune avec CVE-2026-109619, bien que PHP n'ait pas encore confirmé ce point.

Les versions PHP affectées n'ont pas encore été précisément délimitées dans le registre NVD au moment de la rédaction de cet article (23 octobre 2026). Aucun score CVSS officiel n'a été assigné. PHP n'a pas non plus communiqué de date cible pour la publication du correctif, ni confirmé si des versions PHP 7 (en fin de support) sont concernées. Cette opacité sur le calendrier de correction est une source de préoccupation légitime pour les équipes de sécurité qui doivent prioriser leurs actions.

La mitigation officielle recommandée par PHP est précise : désactiver session.upload_progress.enabled via la directive INI. Contrairement à un simple ini_set() dans le code applicatif, PHP recommande d'utiliser le préfixe php_admin_flag, qui ne peut pas être surchargé par du code applicatif via ini_set(). C'est précisément cette possibilité de surcharge par ini_set() qui constitue le vecteur d'exploitation de la faille. La distinction entre la directive normale et la directive administrative est critique pour l'efficacité de la mitigation.

Aucune exploitation active de CVE-2026-115560 n'a été rapportée à ce stade. La CISA n'a pas ajouté cette CVE à son catalogue KEV (Known Exploited Vulnerabilities). Le niveau de priorité est donc inférieur à celui de PHP2Shell, mais la proximité temporelle avec les failles PHP2Shell et l'absence de patch maintiennent une vigilance élevée dans la communauté de sécurité PHP. Des chercheurs de HoplonInfoSec et Feedly suivent activement l'évolution de cette CVE.

Cette situation illustre un défi récurrent dans la gestion des vulnérabilités PHP : le délai entre la découverte d'une faille, son attribution d'un CVE, et la publication d'un correctif peut laisser des fenêtres d'exposition significatives. Les grandes applications PHP comme WordPress, Drupal, Joomla, Magento, et les frameworks Symfony ou Laravel ne sont pas directement en cause ici (la vulnérabilité est dans PHP core), mais tous leurs déploiements peuvent être affectés selon la configuration PHP sous-jacente.

Impact et exposition

CVE-2026-115560 affecte potentiellement tous les serveurs PHP où session.upload_progress.enabled est actif (valeur par défaut) et où des conditions inhabituelles de sérialisation de session peuvent être déclenchées. L'exploitation nécessite des configurations non standards du gestionnaire de sérialisation, ce qui limite significativement la surface d'attaque réelle par rapport à PHP2Shell. Cependant, les applications web complexes utilisant des frameworks qui modifient dynamiquement les paramètres PHP via ini_set() sont plus exposées.

Les plateformes SaaS multi-tenant, les hébergeurs partagés et les environnements où plusieurs applications PHP cohabitent sur le même serveur présentent un risque amplifié. Si une seule application parmi plusieurs sur un serveur partagé présente la configuration vulnérable, l'attaquant peut compromettre l'ensemble du serveur et accéder aux données de toutes les applications. Les applications legacy en PHP 5 ou PHP 7 (fin de support) pour lesquelles aucun patch ne sera jamais publié sont particulièrement préoccupantes.

En l'absence de patch, la fenêtre d'exposition reste ouverte jusqu'à la prochaine release PHP planifiée. Les équipes DevOps et SecOps doivent surveiller activement les publications PHP.net, les annonces du CERT-FR et les mises à jour du registre NVD pour cet identifiant. La fonctionnalité session.upload_progress est rarement utilisée dans les applications web modernes, ce qui rend sa désactivation généralement sans impact fonctionnel.

Recommandations immédiates

  • Désactiver immédiatement session.upload_progress : ajouter php_admin_flag[session.upload_progress.enabled] = off dans la configuration des pools PHP-FPM (www.conf)
  • Pour Apache avec mod_php : ajouter php_admin_flag session.upload_progress.enabled off dans la configuration Apache (VirtualHost ou .htaccess si AllowOverride le permet)
  • Vérifier l'état actuel : php -r "echo ini_get('session.upload_progress.enabled');" — retourne 1 si vulnérable
  • Surveiller les publications PHP (php.net/releases) pour le correctif dès sa disponibilité et l'appliquer en priorité
  • Auditer les applications utilisant ini_set() pour modifier les gestionnaires de sérialisation de session

⚠️ Urgence

Aucun patch disponible à ce jour (23 octobre 2026). L'exploitation requiert des conditions inhabituelles mais la mitigation (une seule ligne de configuration) est simple et sans impact fonctionnel dans la plupart des cas. Appliquez-la immédiatement en attendant le correctif officiel. Surveiller l'évolution : PHP n'a pas fourni de calendrier de correction.

Comment savoir si je suis vulnérable ?

Vérifiez la valeur de session.upload_progress.enabled avec : php -r "echo ini_get('session.upload_progress.enabled');". Une valeur de "1" signifie que la fonctionnalité est active. Vous pouvez également inspecter le fichier php.ini actif (localisation via php --ini) et chercher la directive session.upload_progress.enabled. Si elle est absente ou à "On", votre installation est potentiellement vulnérable. Vérifiez aussi les fichiers de configuration des pools FPM dans /etc/php/*/fpm/pool.d/ et les fichiers .htaccess de vos applications.

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