En bref : CVE-2026-115560 est un avis que php.net a publié le 23 octobre 2026. L'exécution de code à distance n'y est possible qu'avec une configuration de session inhabituelle. Jusqu'à la prochaine version corrective régulière, la parade est : définir session.upload_progress.enabled=0 côté serveur et redémarrer tous les workers.
Qu'est-ce que CVE-2026-115560 ?
Deux jours après les correctifs des failles PHP2Shell CVE-2026-109618 et CVE-2026-109619, le projet PHP a publié un nouvel avis. CVE-2026-115560 concerne le traitement des sessions par PHP en lien avec la fonction Session Upload Progress, qui enregistre dans la session la progression des envois de fichiers en cours.
Selon php.net, une exécution de code malveillant à distance est possible, mais seulement avec une configuration inhabituelle. L'avis complet, avec tous les détails, doit suivre avec la prochaine version corrective régulière. D'ici là, l'état des connaissances est volontairement succinct.
Que fait Session Upload Progress ?
Session Upload Progress est une fonction de confort de PHP. Lorsqu'un visiteur envoie un fichier volumineux, PHP écrit en continu dans la session, pendant l'envoi, des indications sur la progression : quelle quantité de données est déjà arrivée et quel fichier est en cours de transfert. Une application peut interroger ces indications en parallèle et en tirer une barre de progression.
En pratique, peu d'applications l'utilisent, car les formulaires d'envoi modernes mesurent généralement la progression directement dans le navigateur. Dans PHP, la fonction est cependant activée par défaut. C'est pourquoi elle apparaît à la fois pour CVE-2026-115560 et dans les mesures transitoires contre PHP2Shell : ce qui n'est pas nécessaire devrait être désactivé.
Quand un serveur est-il concerné par CVE-2026-115560 ?
Selon l'avis de php.net, trois conditions doivent être réunies :
- Dans la configuration, la valeur
php_binaryouphp_serializeest enregistrée poursession.serialize_handler. - L'application rebascule cette valeur sur
phpà l'exécution viaini_set()avant d'appelersession_start(). - Session Upload Progress est actif.
La valeur par défaut de session.serialize_handler est php. Un changement dans la configuration et un retour en arrière dans le code est inhabituel, mais se rencontre dans des développements spécifiques anciens ou des bibliothèques avec leur propre gestion des sessions. Savoir si c'est votre cas peut se vérifier.
Comment vérifier votre configuration
D'abord les valeurs effectives. La CLI peut lire un autre php.ini que PHP-FPM ou mod_php ; vérifiez donc aussi la configuration du serveur web ou du pool FPM.
php -i | grep -E "session.serialize_handler|session.upload_progress.enabled"
grep -rn "serialize_handler\|upload_progress" /etc/php/ 2>/dev/null # le chemin varie selon la distribution
Ensuite le code de l'application. La recherche suivante est en lecture seule et montre les endroits où le gestionnaire est défini à l'exécution :
grep -rn "session.serialize_handler" /var/www/ --include="*.php"
Si la recherche ne trouve rien et que le gestionnaire est sur php dans la configuration, la combinaison décrite est improbable. Vous devriez néanmoins désactiver Session Upload Progress, car php.net cite le même réglage aussi comme mesure transitoire contre PHP2Shell.
Parade : session.upload_progress.enabled=0
Définissez la valeur dans php.ini, dans le pool FPM ou dans la configuration du serveur. Selon php.net, expressément pas via ini_set() ni .user.ini, car la valeur y agit trop tard ou peut être écrasée par l'application.
; php.ini (pour tous les pools et SAPI qui lisent ce fichier)
session.upload_progress.enabled = 0
; ou dans le pool FPM
php_admin_flag[session.upload_progress.enabled] = off
# Apache avec mod_php, dans le VirtualHost ou dans la configuration du serveur
php_admin_flag session.upload_progress.enabled off
Redémarrez ensuite tous les workers PHP, par exemple systemctl restart php8.3-fpm ou Apache avec mod_php. Les noms de paquets et de services varient selon la distribution. Sans redémarrage, l'ancien réglage reste actif. Plus d'informations sous Redémarrer PHP-FPM et tous les workers.
Après le redémarrage, vérifiez que le réglage s'applique réellement : dans le contexte web, pas seulement en ligne de commande. Une page phpinfo brièvement mise en place et protégée par un contrôle d'accès montre la valeur effective ; supprimez-la aussitôt après.
Mise en perspective avec PHP2Shell
CVE-2026-115560 est nettement plus restreinte que les deux failles PHP2Shell, qui agissent dans les modes d'exécution habituels sans configuration particulière. Qui doit actuellement établir des priorités devrait d'abord installer la mise à jour PHP2Shell, puis définir session.upload_progress.enabled=0. Les deux ensemble sont réalisables dans une seule fenêtre de maintenance.
Pour la direction et les non-techniciens : CVE-2026-115560 n'est pas une raison de s'inquiéter, mais un point sur la liste. Le réglage est rapidement défini, n'a d'effet sensible sur pratiquement aucune application et couvre en même temps l'une des mesures transitoires contre PHP2Shell. Les autres mesures transitoires de php.net figurent sous Mesures immédiates si vous ne pouvez pas encore appliquer le correctif, des indications générales sur la configuration des sessions sous Sécuriser les sessions en PHP.
Ce que nous ne savons pas encore : quelles versions de PHP sont exactement concernées et quelle version apportera la correction. Nous mettrons cette page à jour dès que l'avis paraîtra.
Comment PHP SOS aide-t-il concrètement ?
Dans le cadre du durcissement de serveur, nous mettons en œuvre la parade de façon durable et vérifiable :
- Lire la configuration : valeurs de session effectives par SAPI, pool et hôte virtuel.
- Parcourir le code : endroits où le gestionnaire ou les options de session sont modifiés à l'exécution.
- Désactiver au bon endroit : dans php.ini, le pool ou la configuration du serveur, non écrasable par l'application, avec redémarrage ensuite.
- Assurer le suivi : lorsque la version corrective paraîtra, nous l'installerons et documenterons l'état.
Questions fréquentes
CVE-2026-115560 fait-elle partie de PHP2Shell ?
L'avis est paru deux jours après les correctifs PHP2Shell et concerne lui aussi PHP lui-même. C'est cependant une faille distincte avec son propre numéro CVE, qui n'agit qu'avec une configuration précise et inhabituelle. Les mises à jour PHP2Shell du 21 octobre ne la corrigent pas, en l'état actuel des connaissances.
Existe-t-il déjà une mise à jour contre CVE-2026-115560 ?
À la date du 25.10.2026, non. php.net annonce que l'avis complet suivra avec la prochaine version corrective régulière. D'ici là, session.upload_progress.enabled=0 est la parade recommandée.
Qu'est-ce qui cesse de fonctionner si je désactive Session Upload Progress ?
La fonction signale à l'application la progression des envois de fichiers en cours. Seules les applications qui réalisent une telle barre de progression via cette fonction PHP perdent l'affichage. L'envoi lui-même continue de fonctionner.