Pas php.net · Pas la NVD · Pas la CISA

Suivi des vulnérabilités PHP

Note d’information non officielle sur les vulnérabilités de sécurité PHP

English简体中文日本語DeutschFrançaisNederlandsEspañol

Alerte de sécurité

PHP2Shell : mettez PHP à jour. C’est le seul correctif complet.

CVE-2026-109618 et CVE-2026-109619 sont des failles critiques de PHP lui-même, permettant une exécution de code à distance sans authentification. Le projet PHP a publié des correctifs le 21 octobre 2026 pour les branches maintenues 8.2 à 8.5. Redémarrez PHP après la mise à jour. Un pare-feu ne la remplace pas.

Étapes de correction

Remédiation

Corriger PHP2Shell : mettre à jour PHP et redémarrer les workers

Le projet PHP, AWS et la CISA s’accordent sur le point opérationnel : seule une mise à niveau corrige complètement CVE-2026-109618 et CVE-2026-109619. Les commandes ci-dessous montrent la forme habituelle de ce travail. Les versions des paquets dépendent de l’avis de votre distribution. Une CLI qui affiche une version corrigée ne prouve pas que le pool derrière votre site a redémarré avec ce binaire.

Dernière mise à jour

Versions cibles

Les archives sources et les builds Windows se trouvent sur la page de téléchargement de PHP. Selon php.net, les distributions Linux et les fournisseurs LTS ont reçu les correctifs avant la publication, si bien que le paquet de la distribution est souvent la bonne voie. Le même avis indique que le dépôt bénévole Remi (rpms.remirepo.net) n’avait pas les mises à jour le 21 octobre et conseille à ses utilisateurs de passer aux paquets de la distribution ou de compiler eux-mêmes.

Debian, Ubuntu et autres systèmes apt

Debian a publié des correctifs : DLA-4848-1 (Debian LTS) pour Debian 12 bookworm, php8.2 8.2.35-1~deb12u1, et DSA-6574-1 pour Debian 13 trixie, php8.4 8.4.27-1~deb13u1. Le security tracker indique comme vulnérables les builds de la suite de base (bookworm php8.2 8.2.32-1~deb12u1, trixie php8.4 8.4.24-1~deb13u1) ; le correctif n’arrive donc que si la suite security figure dans vos sources de paquets. Le 22 octobre, le tracker indiquait toujours testing (forky) php8.4 8.4.26-1 comme vulnérable.

Mettez à jour les métadonnées et installez les paquets PHP réellement publiés. Les noms suivent la branche mineure (php8.3-fpm, php8.3-cli, php8.3-common ainsi que le paquet du module Apache pour mod_php). Si la version candidate est encore inférieure au correctif, attendez la distribution : il ne vous manque pas une option.

Exemple de séquence apt pour les paquets 8.3. Vérifiez que la version candidate est 8.3.36 ou plus avant de conclure.
sudo apt-get update
apt-cache policy php8.3-cli php8.3-fpm php8.3-common
sudo apt-get install --only-upgrade php8.3-cli php8.3-fpm php8.3-common
php8.3 -v
# Web SAPI, not just the CLI:
php-fpm8.3 -v
sudo systemctl restart php8.3-fpm
# If Apache loads mod_php, restart Apache as well:
sudo systemctl restart apache2

RHEL, Alma, Rocky, Fedora : dnf ou yum

Exemple de séquence dnf. Sur les dérivés plus anciens, yum update php php-fpm php-cli suit la même idée. Pour la version, l’errata de l’éditeur fait foi.
sudo dnf clean expire-cache
sudo dnf update php php-cli php-fpm php-common
php -v
php-fpm -v
sudo systemctl restart php-fpm
# mod_php under httpd:
sudo systemctl restart httpd

Docker et autres images

Reconstruire et redéployer. Récupérer une nouvelle image de base ne change rien tant que la charge de travail qui sert le trafic n’est pas remplacée. Les tags d’images officielles suivent généralement la version de PHP ; vérifiez sur Docker Hub que le tag existe avant de le fixer. La consigne de Google Cloud pour Cloud Run et GKE est la même : reconstruire l’image déployée, sauf pour une image de base serverless que Google dit remplacer lui-même.

Fixer le tag corrigé, reconstruire et remplacer le service. Le tag apache est l’image officielle de type mod_php ; utilisez la variante que vous employez déjà.
FROM php:8.3.36-fpm
# or: php:8.3.36-apache, php:8.4.27-fpm, php:8.2.35-fpm, php:8.5.12-cli

# then, on the host:
# docker pull php:8.3.36-fpm
# docker build -t your-app:php2shell-fix .
# redeploy and confirm the running container's PHP version

cPanel

  1. Mettez à jour cPanel lui-même pour qu’EasyApache propose un build PHP corrigé. Les menus évoluent ; la documentation cPanel fait foi.
  2. Dans WHM, ouvrez EasyApache 4 et déployez une version de PHP égale ou supérieure au correctif de la branche. Dans MultiPHP Manager, attribuez une version de PHP aux domaines.
  3. Retirez les domaines exposés publiquement des gestionnaires PHP 8.1 ou antérieurs, sauf si votre fournisseur a confirmé que le build contient le rétroportage.
  4. Redémarrez Apache et PHP-FPM via WHM, vérifiez la version de PHP d’un domaine et supprimez les pages de test temporaires.

Plesk

  1. Installez les mises à jour de Plesk et des paquets système. Le chemin de clics actuel est décrit dans la documentation Plesk.
  2. Sous Outils et paramètres, vérifiez les mises à jour et la liste des gestionnaires PHP. Les paramètres PHP du domaine indiquent quelle version un abonnement utilise réellement.
  3. Choisissez un gestionnaire corrigé (8.2.35, 8.3.36, 8.4.27 ou 8.5.12, ou un build fournisseur vérifié). Appliquez-le d’abord aux sites publics.
  4. Redémarrez le service PHP utilisé par Plesk et vérifiez la version au niveau du domaine, pas seulement sur l’hôte du panneau.

宝塔面板 (BT Panel)

Selon l’avis 宝塔 du 22 octobre 2026, les panneaux Linux et Windows ont synchronisé 8.2.35, 8.3.36, 8.4.27 et 8.5.12. Les paquets 7.4.34, 8.0.31 et 8.1.35, proposés uniquement pour Linux, sont des builds 宝塔 et non des versions du projet PHP. Le chemin de clics et le réglage Windows incomplet figurent sur la page BT Panel.

mod_php comparé à PHP-FPM

Les deux figurent sur la liste de risques du projet PHP. mod_php est considéré comme le risque le plus élevé parce que le chemin démontré sans authentification agit avant le code applicatif. Un redémarrage d’Apache recharge mod_php. PHP-FPM est un processus distinct : redémarrez chaque pool (systemctl restart php8.3-fpm ou l’unité équivalente) et n’oubliez pas que des pools peuvent fixer leur propre binaire. Le php présent dans le PATH de votre shell peut être un autre build que celui du pool. PHP cite FrankenPHP, php-cgi et LiteSpeed comme servant des requêtes web et donc affectés ; suivez leurs guides de mise à niveau au lieu de supposer qu’un paquet apt php-fpm les couvre.

Mesures provisoires, incomplètes selon PHP

Utilisez-les uniquement comme transition, reprises de l’avis de php.net. Elles réduisent certains chemins et ne rendent pas un hôte sûr. Définissez-les dans php.ini ou dans un réglage de pool ou Apache au niveau administrateur (php_admin_value). Selon PHP, ini_set() et les .user.ini par répertoire interviennent trop tard pour le chemin d’envoi de session.

CVE-2026-109618

CVE-2026-109619

Pare-feu applicatifs web (WAF)

La CISA indique qu’un pare-feu applicatif web peut offrir une certaine protection jusqu’à la mise à jour. Cloudflare indique que des règles gérées pour ce problème étaient actives dès le 21 octobre 2026 à 03 h 02 UTC pour les clients des offres WAF gratuites et payantes, développées sous embargo avec la PHP Foundation et d’autres, et que les clients devaient tout de même corriger. Une règle peut être contournée ; Cloudflare a lui-même observé des attaquants adapter leurs charges. Gardez le WAF, mais ne l’utilisez pas comme correctif.

Le bulletin AWS 2026-143-AWS liste des contrôles compensatoires pour les utilisateurs d’AWS WAF. Pour CVE-2026-109618 : la règle SizeRestrictions_BODY du Core rule set (CRS) d’AWS WAF, comme protection supplémentaire contre les corps de requête de plus de 8 Ko (8 192 octets). Pour CVE-2026-109619 : AWS a publié la version 2.3 du groupe de règles gérées AWS WAF PHP et l’a promue version par défaut dans le monde entier. Le bulletin publie aussi, en JSON, une règle personnalisée qui bloque les requêtes POST contenant PHP_SESSION_UPLOAD_PROGRESS dans le corps et PHPSESSID dans le corps ou un cookie. AWS rappelle lui aussi que seule la mise à niveau corrige complètement, et que les versions EOL 5.4 à 8.1 n’ont aucun correctif pour CVE-2026-109618.

Après la mise à niveau

Durcissement à garder après la mise à jour

L’avis complet de PHP recommande des limites en bordure (taille décodée, profondeur d’imbrication, variables d’entrée, parties multipart et en-têtes par partie), le refus du multipart sur les routes sans upload, et d’éviter RLIMIT_AS et RLIMIT_DATA. Pourquoi les limites d’upload seules ne plafonnent pas la mémoire, et les différences entre mod_php, FPM, FrankenPHP et LiteSpeed : voir la page CVE-2026-109618.

Sources

Les liens externes quittent ce site. Nous n’hébergeons aucun code d’exploitation.

  1. News archive 2026: security advisory, 21 October 2026 — PHP project (php.net)
  2. PHP downloads — PHP project (php.net)
  3. Today’s PHP security release, and how we’re strengthening PHP security — The PHP Foundation
  4. Critical vulnerabilities in PHP require immediate patching (21 October 2026) — CISA
  5. Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure in MadPot — AWS Security Blog
  6. Cloudflare deploys protections against php2shell vulnerability — Cloudflare
  7. 2026-143-AWS — PHP web runtimes (CVE-2026-109618 and CVE-2026-109619) — AWS Security Bulletins
  8. Critical security issue affecting PHP — UK NCSC
  9. Notice: php2shell, critical PHP vulnerabilities (status as of 21 October 2026, 20:00 UTC) — Expel
  10. Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619 — Google Cloud
  11. php image on Docker Hub — Docker Official Images
  12. DLA-4848-1: php8.2 security update (Debian 12 bookworm) — Debian LTS
  13. DSA-6574-1: php8.4 security update (Debian 13 trixie) — Debian
  14. cPanel documentation — cPanel
  15. Plesk documentation — Plesk
  16. PHP 与 Node.js 紧急安全更新公告(更新于 2026-10-22) — 宝塔面板 (BT Panel)
  17. php2shell product-inventory notes — NCSC-NL
  18. php2shell: Assessing Elastic detection coverage relevant to CVE-2026-109618 and CVE-2026-109619 — Elastic Security Labs
  19. GHSA-w8hw-w9fx-j79w — CVE-2026-109618 — PHP (GitHub Security Advisory)
  20. PHP vulnerability CVE-2026-109618 (reproduces PHP’s advisory) — Inphinit (PHP framework documentation)