Alerte sécurité PHP : comment sécuriser et mettre à jour votre serveur Debian face à deux vulnérabilités critiques
Une nouvelle vulnérabilité critique touchant le cœur de PHP a été rendue publique, accompagnée de PoCs (Proof of Concept). Cette faille majeure permet potentiellement à des attaquants non authentifiés d'exécuter du code arbitraire (RCE) sur les serveurs cibles.
Deux vulnérabilités critiques affectant PHP, CVE-2026-109618 et CVE-2026-109619, ont été divulguées. Elles peuvent permettre à un attaquant distant non authentifié d’exécuter du code sur un serveur vulnérable. Des PoC commencent à circuler publiquement.
Les deux failles n’ont pas exactement le même mécanisme : la première concerne la gestion d’un épuisement mémoire ; la seconde, la réutilisation d’un état interne obsolète. session.upload_progress est lié à des chemins d’attaque confirmés pour la seconde vulnérabilité, mais ne décrit pas à lui seul l’origine des deux failles.
Si vous hébergez vos applications web sur un serveur Debian, vérifiez rapidement les mises à jour de sécurité disponibles pour votre version de Debian et vos sources de paquets. Les versions corrigées par le projet PHP sont 8.5.12, 8.4.27, 8.3.36 et 8.2.35. Debian peut publier des versions de paquets différentes, notamment en rétroportant un correctif : le numéro amont affiché par php -v n’est donc pas toujours suffisant pour déterminer si le correctif est installé.
Étape 1 : Vérifier votre version de PHP et les paquets installés
Connectez-vous à votre serveur en SSH et repérez la version CLI :
php -v
Cette commande indique la version utilisée en ligne de commande ; elle ne garantit pas que votre site utilise la même version. Vérifiez également les paquets PHP installés :
dpkg -l | grep -E 'php|libapache2-mod-php'
Pour les dépôts tiers, comme ceux de packages.sury.org, vérifiez aussi que le dépôt est configuré pour votre version de Debian et consultez les informations de mise à jour du fournisseur. Ne mélangez pas les paquets de différentes distributions ou versions de Debian.
Étape 2 : Mettre à jour les paquets
Sur Debian, actualisez la liste des paquets et appliquez les mises à jour disponibles :
sudo apt update
sudo apt upgrade
Pour mettre à niveau des paquets PHP déjà installés, vous pouvez également indiquer leurs noms exacts, par exemple :
sudo apt install --only-upgrade php8.4-cli php8.4-fpm php8.4-common
Adaptez ces noms à votre installation : la version PHP, les paquets nécessaires et leur disponibilité dépendent de votre version de Debian et des dépôts configurés. Avec les paquets Debian, vérifiez les avis de sécurité correspondant à votre distribution. Par exemple, Debian indique que la mise à jour corrigée pour Debian 13 (trixie) est 8.4.27-1~deb13u1, et celle pour Debian 12 (bookworm) est 8.2.35-1~deb12u1.
Étape 3 : Redémarrer les services concernés
Après la mise à jour, redémarrez les processus PHP qui servent les requêtes afin qu’ils utilisent les binaires corrigés.
Avec PHP-FPM et Nginx, par exemple :
sudo systemctl restart php8.4-fpm
sudo systemctl restart nginx
Avec PHP-FPM et Apache, redémarrez le service FPM et Apache :
sudo systemctl restart php8.4-fpm
sudo systemctl restart apache2
Remplacez php8.4-fpm par le nom exact de votre service. Si Apache utilise mod_php plutôt que PHP-FPM, redémarrez Apache :
sudo systemctl restart apache2
Vérifiez au préalable le mode d’exécution et les services effectivement utilisés ; une configuration peut comporter plusieurs versions ou services PHP.
Étape 4 : Mesures temporaires si vous ne pouvez pas appliquer le correctif
La mise à jour est la seule correction complète. Les mesures suivantes ne remplacent pas le correctif et ne neutralisent pas nécessairement tous les chemins d’attaque. Si la mise à jour immédiate est impossible, envisagez d’isoler les applications exposées à Internet jusqu’à ce que le correctif soit installé et vérifié.
Pour réduire certains risques :
Désactivez la progression des téléversements de session si elle n’est pas nécessaire. Configurez
session.upload_progress.enabled = Offdansphp.ini, la configuration du pool PHP-FPM ou une configuration serveur appliquée avant le traitement de la requête, puis redémarrez tous les workers. Ne comptez pas surini_set()ou.user.inipour cette mesure. Elle bloque les chemins de session confirmés, mais pas nécessairement d’autres variantes de la vulnérabilité.Surveillez et limitez les requêtes, notamment les téléversements, au niveau du serveur web, du proxy ou du WAF. Ces limites peuvent réduire l’exposition, mais ne corrigent pas la faille. Un WAF ne doit pas être considéré comme un substitut à la mise à jour.
N’appliquez pas de réglages de mémoire présentés comme un correctif universel. Les recommandations temporaires concernant
memory_limitou la taille des requêtes dépendent de l’application et de l’architecture ; elles réduisent certains chemins d’exposition sans réparer PHP. Faites-les valider avant de les déployer, car elles peuvent aussi affecter la disponibilité ou le fonctionnement du site.
Conclusion
Deux vulnérabilités critiques peuvent permettre une exécution de code à distance sans authentification sur des serveurs PHP vulnérables. Vérifiez les paquets réellement utilisés par vos sites, appliquez le correctif fourni par PHP ou par votre distribution, puis redémarrez les services concernés. Si vous ne pouvez pas corriger immédiatement les systèmes exposés à Internet, envisagez de les isoler jusqu’à la mise à jour et à sa vérification.
Audit gratuit
Discutons de votre projet d'automatisation
Réservez 30 minutes avec nos ingénieurs. Nous identifions vos quick wins et chiffrons votre ROI potentiel — sans jargon, orienté résultats.