[{"data":1,"prerenderedAt":215},["ShallowReactive",2],{"seo-verification":3,"blog-php2shell-cve-2026-109618-109619-mettre-a-jour-php-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-php2shell-cve-2026-109618-109619-mettre-a-jour-php-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":153,"ctaBody":154,"ctaButton":155,"ctaUrl":156,"relatedPosts":157},489,"php2shell-cve-2026-109618-109619-mettre-a-jour-php",{"fr":10,"en":12,"ar":13,"es":14},"php2shell-cve-2026-109618-109619-patch-php","php2shell-cve-2026-109618-109619-تحديث-php","php2shell-cve-2026-109618-109619-actualizar-php","PHP2Shell : corriger CVE-2026-109618 et CVE-2026-109619","PHP2Shell : deux failles critiques de PHP exploitables sans compte. Versions corrigées, commandes de mise à jour par système et parades temporaires.",9,0,false,"2026-10-22T00:00:00+00:00","2026-10-22T01:57:44+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fphp2shell-cve-2026-109618-109619-mettre-a-jour-php-poster.svg","Le 21 octobre 2026, l'équipe de sécurité de PHP a publié en urgence PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35. Ces versions corrigent deux failles surnommées « PHP2Shell » : CVE-2026-109618 et CVE-2026-109619, notées 9.2 sur 10 en CVSS 4.0. Elles visent l'interpréteur lui-même, pas une application : une seule requête HTTP anonyme suffit, avant même que votre code ne s'exécute. Des tentatives d'exploitation sont observées depuis le jour de la publication. Voici ce que font ces deux failles, comment savoir si vos serveurs sont exposés, et comment les corriger sur Debian, Ubuntu, RHEL, cPanel et Docker.",[35,39,49,52,82,85,101,104,122,125,129,132,147,150],{"type":36,"title":37,"body":38},"h2","PHP2Shell en bref","PHP2Shell n'est pas une faille de WordPress, de Laravel ou d'un plugin : c'est le moteur PHP qui est en cause. Toute application PHP qui répond à des requêtes web est donc concernée, quel que soit son code. L'avis de sécurité cite PHP-FPM, Apache avec `mod_php`, `php-cgi`, FrankenPHP et LiteSpeed.\n\nLes deux failles partagent un même mécanisme. Quand PHP interrompt brutalement une requête (mémoire épuisée, erreur fatale), il peut laisser derrière lui un état interne à moitié initialisé ou déjà libéré. Une requête suivante, traitée par le même processus PHP, réutilise alors cet état : c'est ce qui ouvre la voie à une exécution de code à distance.",{"type":40,"title":41,"items":42},"ul","Ce qu'il faut retenir",[43,44,45,46,47,48],"**CVE-2026-109618** — corruption mémoire lors d'un dépassement de `memory_limit` : des données de requête partiellement initialisées sont ensuite traitées comme valides au nettoyage.","**CVE-2026-109619** — état global périmé : un état propre à une requête survit à la libération de sa mémoire et peut être lu par la requête suivante sur le même processus.","**Score** : 9.2 sur 10 en CVSS 4.0 pour chacune, sans authentification ni interaction de l'utilisateur.","**Versions corrigées** : PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35. Le projet ne publie plus de version pour 8.1 et les branches antérieures.","**Exploitation** : watchTowr rapporte des tentatives d'exploitation dans ses pièges réseau dès le 21 octobre 2026.","**Périmètre** : les chercheurs estiment que les branches touchées remontent jusqu'à PHP 5.4, sans que chaque version ait été testée individuellement.",{"type":36,"title":50,"body":51},"Pourquoi ces deux failles sont si dangereuses","La plupart des failles web exigent un formulaire précis, un compte ou un plugin vulnérable. PHP2Shell n'a besoin de rien de tout cela : le déclencheur le plus courant est le traitement d'un envoi `multipart\u002Fform-data` avec le suivi de progression des sessions (`session.upload_progress`), un mécanisme que PHP active par défaut et qui s'exécute **avant** le premier octet de votre application. Un pare-feu applicatif placé dans votre code, un plugin de sécurité WordPress ou un middleware Laravel arrivent donc trop tard.\n\nLe second facteur est le modèle d'exécution lui-même. PHP-FPM et Apache réutilisent le même processus pour des centaines de requêtes successives : c'est précisément ce qui permet à une requête piégée de contaminer la suivante. Selon Imperva, les techniques publiées vont du plantage de processus à la lecture de fichiers arbitraires via le cache OPcache, en passant par la fuite d'environ 67 Ko de mémoire du processus dans un cookie `PHPSESSID` surdimensionné. Cette mémoire peut contenir des mots de passe de base de données ou des clés d'API.",{"type":53,"title":54,"headers":55,"rows":59},"comparison","Quelle version installer selon votre branche",[56,57,58],"Branche PHP","Version corrigée","Que faire",[60,64,67,70,74,78],[61,62,63],"8.5","8.5.12","Mettre à jour puis redémarrer PHP",[65,66,63],"8.4","8.4.27",[68,69,63],"8.3","8.3.36",[71,72,73],"8.2","8.2.35","Mettre à jour, puis planifier la migration vers 8.3 ou 8.4",[75,76,77],"8.1, 8.0, 7.4","Aucune version officielle","Paquet corrigé de votre distribution, rétroportage source, sinon migration",[79,80,81],"7.3 et antérieures, 5.x","Aucun correctif publié","Migrer vers une branche maintenue",{"type":36,"title":83,"body":84},"Vérifier si vos serveurs sont exposés","Attention à un piège classique : la version affichée par `php -v` en ligne de commande n'est pas forcément celle qui sert vos sites. Un serveur peut avoir plusieurs versions de PHP-FPM installées côte à côte, et chaque site peut pointer vers une version différente. Il faut donc vérifier la version réellement servie par le web, site par site.",{"type":86,"title":87,"steps":88},"steps","Inventorier les versions de PHP servies",[89,92,95,98],{"title":90,"body":91},"Lister les versions installées","Sur Debian ou Ubuntu :\n\n```bash\ndpkg-query -W -f='${db:Status-Abbrev} ${Package} ${Version}\\n' 'php*' | awk '$1==\"ii\"' | grep -E 'php[0-9.]+-(fpm|cli|common)|libapache2-mod-php'\n```\n\nSur RHEL, AlmaLinux ou Rocky Linux :\n\n```bash\nrpm -qa 'php*' 'ea-php*' 'alt-php*' | sort\n```",{"title":93,"body":94},"Repérer les processus PHP qui tournent","```bash\nsystemctl list-units --type=service --state=running | grep -E 'php|apache2|httpd|lsws'\n```\n\nChaque service `phpX.Y-fpm` actif est une version à vérifier et à corriger.",{"title":96,"body":97},"Lire la version servie par un site","Déposez un fichier temporaire à la racine du site, interrogez-le, puis **supprimez-le immédiatement** :\n\n```bash\necho '\u003C?php echo PHP_VERSION, \" \", PHP_SAPI;' > \u002Fvar\u002Fwww\u002Fmonsite\u002Fv-check.php\ncurl -s https:\u002F\u002Fmonsite.example\u002Fv-check.php\nrm \u002Fvar\u002Fwww\u002Fmonsite\u002Fv-check.php\n```\n\nUn résultat `8.3.36 fpm-fcgi` indique une version corrigée servie par PHP-FPM.",{"title":99,"body":100},"Contrôler les conteneurs Docker","```bash\ndocker ps --format '{{.Names}}' | while read c; do echo \"$c: $(docker exec \"$c\" php -r 'echo PHP_VERSION;' 2>\u002Fdev\u002Fnull)\"; done\n```\n\nUn conteneur sans PHP n'affiche rien après son nom.",{"type":36,"title":102,"body":103},"Appliquer le correctif","Les distributions Linux et les fournisseurs de support étendu ont reçu les correctifs avant la publication. Le paquet corrigé de votre distribution ne porte donc pas forcément le numéro 8.3.36 : Ubuntu 24.04, par exemple, corrige sa version 8.3.6 dans le paquet `8.3.6-0ubuntu0.24.04.13`. Fiez-vous à l'avis de sécurité de votre distribution plutôt qu'au seul numéro de version de PHP. Dans tous les cas, **le redémarrage est indispensable** : tant que les anciens processus tournent, c'est l'ancien code qui répond.",{"type":86,"title":105,"steps":106},"Mettre à jour PHP selon votre environnement",[107,110,113,116,119],{"title":108,"body":109},"Debian et Ubuntu","```bash\nsudo apt update\nsudo apt install --only-upgrade $(dpkg-query -W -f='${db:Status-Abbrev} ${Package}\\n' 'php*' | awk '$1==\"ii\"{print $2}')\nsudo systemctl restart 'php*-fpm'\nsudo systemctl restart apache2   # si vous utilisez mod_php\n```\n\nSi vos versions viennent d'un dépôt tiers (par exemple le PPA `ondrej\u002Fphp`), vérifiez que la version installée après la mise à jour est bien une version corrigée.",{"title":111,"body":112},"RHEL, AlmaLinux, Rocky Linux","```bash\nsudo dnf upgrade 'php*'\nsudo systemctl restart php-fpm\nsudo systemctl restart httpd\n```\n\nAlmaLinux a publié ses paquets corrigés le 21 octobre 2026. Le dépôt communautaire Remi n'avait, lui, aucune mise à jour disponible au moment de l'annonce : si vous en dépendez, vérifiez la version installée après coup.",{"title":114,"body":115},"Serveur cPanel (EasyApache 4 ou CloudLinux)","```bash\nsudo dnf upgrade 'ea-php*' 'alt-php*'\n\u002Fscripts\u002Frestartsrv_apache_php_fpm\n\u002Fscripts\u002Frestartsrv_httpd\n```\n\nSur un serveur plus ancien, remplacez `dnf` par `yum`. Contrôlez ensuite chaque version dans **WHM › MultiPHP Manager** : un compte encore réglé sur une branche sans correctif (7.x, 8.0, 8.1) doit être basculé vers une version maintenue.",{"title":117,"body":118},"Conteneurs Docker","```bash\ndocker compose pull\ndocker compose up -d --force-recreate\ndocker compose exec app php -r 'echo PHP_VERSION;'\n```\n\nSi votre `Dockerfile` part d'une image `php:8.3-fpm`, reconstruisez l'image avec `docker compose build --pull` : sans `--pull`, Docker réutilise l'ancienne image de base en cache.",{"title":120,"body":121},"Contrôler le résultat","Relancez la vérification de l'étape précédente sur chaque site. Le correctif n'est appliqué que si la version **servie par le web** est corrigée, pas seulement la version installée sur le disque.",{"type":36,"title":123,"body":124},"Si vous ne pouvez pas mettre à jour tout de suite","L'avis officiel de PHP propose des réglages qui **réduisent** l'exposition sans rendre l'installation sûre. Ils servent à gagner quelques heures, pas à remplacer le correctif. Ils doivent être posés dans `php.ini`, dans le pool PHP-FPM ou dans la configuration du serveur web, jamais par `ini_set()` ni par un fichier `.user.ini` : ces derniers sont lus trop tard, après l'analyse de la requête.\n\nContre CVE-2026-109619, désactivez le suivi de progression des envois. Sur PHP 8.5, désactivez aussi les traces d'erreurs fatales :\n\n```ini\n; dans le pool FPM, par exemple \u002Fetc\u002Fphp\u002F8.3\u002Ffpm\u002Fpool.d\u002Fwww.conf\nphp_admin_flag[session.upload_progress.enabled] = off\n; PHP 8.5 uniquement :\nphp_admin_flag[fatal_error_backtraces] = off\n```\n\nContre CVE-2026-109618, l'avis recommande `memory_limit = -1` imposé par `php_admin_value`, afin qu'aucune application ne puisse le redéfinir, et une taille de requête bornée (`post_max_size = 8M`, ou 32M si vous avez besoin d'envois de fichiers). En contrepartie, la mémoire doit être plafonnée ailleurs, par une limite de conteneur ou de cgroup. N'utilisez pas `RLIMIT_AS` ni `RLIMIT_DATA` : ils provoquent justement l'échec d'allocation vulnérable.\n\nRedémarrez ensuite **tous** les processus PHP pour que les réglages s'appliquent.",{"type":126,"title":127,"body":128},"tip","Ajoutez une barrière devant PHP","Bornez la taille des requêtes au niveau du serveur web, avant qu'elles n'atteignent PHP : `client_max_body_size 8m;` dans nginx, `LimitRequestBody 8388608` dans Apache. Si votre site passe par Cloudflare en mode proxifié, des règles WAF ciblant les vecteurs connus de PHP2Shell ont été déployées pour tous les comptes, offre gratuite comprise. Ce sont des filets de sécurité : seule la mise à jour de PHP ferme la faille.",{"type":36,"title":130,"body":131},"Rechercher des traces d'exploitation","Les tentatives publiées laissent des traces caractéristiques : des processus PHP qui plantent, des dépassements de mémoire en rafale et des envois `multipart` anormalement volumineux. Si votre serveur a été exposé avant la mise à jour, prenez dix minutes pour vérifier.",{"type":86,"title":133,"steps":134},"Contrôles à mener après le correctif",[135,138,141,144],{"title":136,"body":137},"Chercher les processus PHP-FPM tués","```bash\nsudo grep -E 'exited on signal (11|6)' \u002Fvar\u002Flog\u002Fphp*-fpm.log | tail -20\n```\n\nDes processus tués par le signal 11 (SIGSEGV) en série depuis le 21 octobre sont un signal d'alerte.",{"title":139,"body":140},"Chercher les dépassements de mémoire","```bash\nsudo grep -rh 'Allowed memory size' \u002Fvar\u002Flog\u002Fphp* \u002Fvar\u002Flog\u002Fnginx \u002Fvar\u002Flog\u002Fapache2 2>\u002Fdev\u002Fnull | tail -20\n```",{"title":142,"body":143},"Repérer les fichiers PHP récemment créés","```bash\nsudo find \u002Fvar\u002Fwww \u002Fhome -name '*.php' -newermt '2026-10-20' -not -path '*\u002Fvendor\u002F*' -not -path '*\u002Fcache\u002F*' -ls\n```\n\nUn fichier inconnu au nom générique, dans un dossier d'envoi ou dans `\u002Ftmp`, doit être examiné avant toute suppression.",{"title":145,"body":146},"En cas de doute, traiter le serveur comme compromis","Isolez la machine, conservez une copie des journaux, puis renouvelez les mots de passe de base de données, les clés d'API et les secrets présents dans les fichiers `.env` : une fuite de mémoire peut les avoir exposés sans laisser d'autre trace.",{"type":36,"title":148,"body":149},"Sur un hébergement mutualisé","Sur un hébergement mutualisé, ce n'est pas vous qui mettez à jour PHP : c'est l'hébergeur qui maintient les versions proposées. Votre part du travail consiste à vérifier que votre site utilise une branche encore corrigée. Dans cPanel, l'outil de choix de version (**MultiPHP Manager**, ou **Select PHP Version** sur un serveur CloudLinux) indique la version active de chaque domaine. Si votre site tourne encore en 7.4, 8.0 ou 8.1, ces branches ne reçoivent plus de version officielle de PHP : basculez vers 8.3 ou 8.4 après avoir testé votre site, en suivant \u003Ca href=\"\u002Fblog\u002Fphp-82-fin-de-vie-checklist-migration\">notre checklist de migration PHP\u003C\u002Fa>.",{"type":36,"title":151,"body":152},"La documentation officielle","Les détails techniques et les réglages de contournement sont publiés dans \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Farchive\u002F2026.php\">l'avis de sécurité de PHP\u003C\u002Fa> et dans les avis GitHub \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fphp\u002Fphp-src\u002Fsecurity\u002Fadvisories\u002FGHSA-w8hw-w9fx-j79w\">GHSA-w8hw-w9fx-j79w\u003C\u002Fa> (CVE-2026-109618) et \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fphp\u002Fphp-src\u002Fsecurity\u002Fadvisories\u002FGHSA-6wmf-4rv5-p3rp\">GHSA-6wmf-4rv5-p3rp\u003C\u002Fa> (CVE-2026-109619). Pour les paquets de distribution, consultez \u003Ca href=\"https:\u002F\u002Fubuntu.com\u002Fblog\u002Fphp2shell-vulnerability-fixes-available\">l'annonce d'Ubuntu\u003C\u002Fa> et \u003Ca href=\"https:\u002F\u002Falmalinux.org\u002Fblog\u002F2026-10-21-php2shell-cve-2026-109618-cve-2026-109619\u002F\">celle d'AlmaLinux\u003C\u002Fa>.","Gardez la main sur vos versions de PHP","Sur un VPS ServOrbit.com, vous avez l'accès root : vous appliquez un correctif PHP dès sa publication, vous choisissez la version de chaque site et vous redémarrez vos services quand vous le décidez.","Découvrir les VPS","\u002Fvps-cloud",[158,175,197],{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":167,"views":168,"isPinned":19,"publishedAt":169,"updatedAt":170,"category":171,"categories":172,"featuredImage":30,"bgImage":31,"posterImage":174,"relatedSolution":30},382,"securite-vps-mises-a-jour-automatiques-debian-ubuntu",{"fr":160,"en":162,"ar":163,"es":164},"vps-automatic-security-updates-debian-ubuntu","تحديثات-أمان-تلقائية-vps-debian-ubuntu","actualizaciones-seguridad-vps-debian-ubuntu","Mises à jour de sécurité automatiques sur VPS Debian\u002FUbuntu","Configurez unattended-upgrades sur vos VPS Debian\u002FUbuntu pour automatiser les patches de sécurité et réduire la surface d'attaque de votre parc client.",10,2,"2026-09-26T00:00:00+00:00","2026-09-29T14:40:42+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[173],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fsecurite-vps-mises-a-jour-automatiques-debian-ubuntu-poster.svg",{"id":176,"slug":177,"slugs":178,"title":182,"excerpt":183,"readTime":184,"views":185,"isPinned":19,"publishedAt":186,"updatedAt":187,"category":188,"categories":194,"featuredImage":30,"bgImage":31,"posterImage":196,"relatedSolution":30},206,"php-82-fin-de-vie-checklist-migration",{"fr":177,"en":179,"ar":180,"es":181},"php-82-end-of-life-planning-your-migration","نهاية-دعم-php-82-دليل-الترحيل","php-82-fin-de-vida-planificar-la-migracion","PHP 8.2 fin de vie : checklist de migration","PHP 8.2 atteint son EOL le 31 décembre 2026. Inventaire, tableau comparatif, checklist de migration et dépannage pour passer à PHP 8.3 ou 8.4 sans interruption.",11,5,"2026-08-01T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":189,"name":190,"slug":191,"color":192,"icon":193},4,"Développement","developpement","bg-warning\u002F10 text-warning","dev",[195],{"id":189,"name":190,"slug":191,"color":192,"icon":193},"\u002Fblog\u002Fcovers\u002Fphp-82-fin-de-vie-checklist-migration-poster.svg",{"id":198,"slug":199,"slugs":200,"title":204,"excerpt":205,"readTime":23,"views":18,"isPinned":19,"publishedAt":206,"updatedAt":207,"category":208,"categories":209,"featuredImage":30,"bgImage":31,"posterImage":211,"relatedSolution":212},373,"wordpress-cve-2026-87902-rce-mise-a-jour-7-1-2",{"fr":199,"en":201,"ar":202,"es":203},"wordpress-cve-2026-87902-update-to-712-now","ووردبريس-cve-2026-87902-ترقية-7-1-2","wordpress-cve-2026-87902-actualiza-a-712-urgente","WordPress CVE-2026-87902 : patcher 7.1.2 avant d'être compromis","CVE-2026-87902 (CVSS 9.2) est exploitée activement depuis le 22 sept. 2026. Vérifiez votre version, appliquez WordPress 7.1.2 et comprenez pourquoi le mutualisé.","2026-09-24T00:00:00+00:00","2026-09-24T12:27:51+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[210],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fwordpress-cve-2026-87902-rce-mise-a-jour-7-1-2-poster.svg",{"categorySlug":213,"appSlug":214},"cms","wordpress",1792634643411]