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

CVE-2026-109619 · GHSA-6wmf-4rv5-p3rp

CVE-2026-109619 : exécution de code à distance dans PHP par état global obsolète

La description de CVE-2026-109619 par le projet PHP est brève et précise : un état interne lié à une requête peut persister après la libération de sa mémoire, et une requête ultérieure sur le même worker peut utiliser cet état obsolète avant que l’initialisation normale ne le réinitialise. Classée critique, CVSS v4.0 9.2 – le même score que CVE-2026-109618.

Dernière mise à jour

Identifiants. Le score 9.2 est utilisé par le projet PHP, les agences partenaires de la CISA et l’avis de l’Université de Toronto.
ChampDonnée des sources citées
CVECVE-2026-109619
Avis GitHubGHSA-6wmf-4rv5-p3rp
GravitéCritique. CVSS v4.0 9.2.
Score NVDCVSS v3.1 9.8 Critique (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), score Primary de la NVD, consulté le 22 octobre 2026 via l’API NVD.
VecteurL’avis de l’Université de Toronto attribue aux deux CVE AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H. Nous n’avons pas trouvé ce vecteur dans le texte de l’annonce de php.net.
Versions correctivesLes mêmes paquets que pour CVE-2026-109618 : 8.2.35, 8.3.36, 8.4.27, 8.5.12.
Type de vulnérabilitéUse-after-free est le terme de la PHP Foundation, de l’Université de Toronto et du Centre canadien pour la cybersécurité (CWE-416). Le titre sur php.net est « RCE via stale global state ».

Ce qui se passe mal, au niveau des informations de l’éditeur

Selon la PHP Foundation, une erreur fatale au mauvais endroit peut laisser un état interne pointant vers la mémoire d’une requête précédente. Une requête ultérieure sur le même worker peut alors utiliser cette mémoire libérée. La Foundation indique que le use-after-free et un plantage du worker sont confirmés, et que la personne ayant signalé la faille a démontré une exécution de code à distance contre une application réelle sur Apache avec mod_php. La description du NCSC britannique correspond à la phrase de php.net.

L’avis de l’Université de Toronto cite la progression d’envoi de session, activée par défaut, comme un chemin confirmé. Selon la recommandation provisoire de PHP, session.upload_progress.enabled=0 bloque les chemins de session confirmés, mais pas les autres variantes. La désactiver est une atténuation, pas une correction. Nous ne décrivons pas comment une requête atteint la fenêtre de l’erreur fatale.

mod_php et PHP-FPM

Expel indique, citant PHP, que PHP a démontré cette CVE contre PHP-FPM lorsque le code applicatif lui-même peut être poussé vers une erreur fatale. L’exposition de FPM dépend de l’application et de la configuration ; PHP considère néanmoins les installations FPM comme exposées. mod_php reste la configuration que le projet PHP classe au risque le plus élevé. Le Centre canadien pour la cybersécurité le répète : un exploit démontré sur mod_php permet à une requête non authentifiée de déclencher la faille avant le code applicatif.

Correction

Il n’existe pas de correctif séparé. Installez les versions du 21 octobre et redémarrez chaque worker. Pour PHP 8.5, le projet cite en plus fatal_error_backtraces=0 comme mesure provisoire, qui ne bloque que le chemin confirmé via les backtraces d’erreurs fatales. Masquer les diagnostics avec error_reporting, display_errors ou l’opérateur @ n’aide pas, selon php.net. Google Cloud cite pour la paire 5.4 à 8.5.11 comme vulnérables ; la correspondance avec les branches réellement corrigées figure sur la page des versions.

Pourquoi la faille exige deux requêtes sur le même worker

L’avis complet de PHP décrit la faille comme une paire. D’abord, une opération laisse un pointeur vers la mémoire d’une requête dans un état global du worker (erreurs, session, objets ou extensions) et est interrompue avant de l’effacer, par exemple par une erreur fatale, un require raté, un dépassement de temps ou un manque de mémoire. Ensuite le worker libère cette mémoire, prend la requête suivante, et un traitement exécuté avant le démarrage normal utilise l’ancien pointeur. Les deux moitiés doivent tomber sur le même worker ; plus de workers et le recyclage ralentissent une attaque sans l’empêcher.

D’où viennent les réglages précoces, selon le SAPI

Un déclencheur confirmé est un avertissement ou une dépréciation émis pendant que PHP applique des réglages par requête avant le démarrage, même si le message n’est jamais affiché ni journalisé. Masquer les erreurs ne sert donc à rien. L’existence de ce chemin dépend de la façon dont les réglages arrivent à PHP :

Mesures supplémentaires de l’avis si vous ne pouvez pas encore corriger

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. Today’s PHP security release, and how we’re strengthening PHP security — The PHP Foundation
  3. GHSA-6wmf-4rv5-p3rp — CVE-2026-109619 — PHP (GitHub Security Advisory)
  4. Security advisory: critical unauthenticated RCE in PHP (“php2shell”) — University of Toronto Information Security
  5. Notice: php2shell, critical PHP vulnerabilities (status as of 21 October 2026, 20:00 UTC) — Expel
  6. Critical vulnerabilities in PHP require immediate patching (21 October 2026) — CISA
  7. Critical security issue affecting PHP — UK NCSC
  8. Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619 — Google Cloud
  9. CVE-2026-109619 — NVD
  10. AL26-026 — Critical vulnerabilities impacting PHP — Canadian Centre for Cyber Security
  11. PHP vulnerability CVE-2026-109619 (reproduces PHP’s advisory) — Inphinit (PHP framework documentation)