This blog post is also available in 🇬🇧 English: PHP2Shell: where to get the patched PHP for your setup.
- EDIT du 22 octobre 2026, 11 h 44 :
- PHP 8.5 corrigé sur Alpine 3.23.
- EDIT du 22 octobre 2026, 11 h 29 :
- PHP 8.3 corrigé sur Alpine 3.23.
- tag
dhi.io/php:8.5corrigé (Docker Hardened Images).- binaires
bulkde static-php-cli corrigés, PHP 8.2 à 8.5.- binaires
gnu-bulkde static-php-cli corrigés, PHP 8.2 et 8.3.- binaires Windows
spc-minde static-php-cli corrigés, PHP 8.2 à 8.5.
TL;DR : l’essentiel, sans tout lire (état au 22 octobre 2026, 11 h 44, heure de Paris)
Installez PHP 8.5.12, 8.4.27, 8.3.36 ou 8.2.35. Ces versions corrigent les 2 failles.
PHP 8.1 et les versions plus anciennes n’ont pas de nouvelle version officielle. Certaines distributions publient quand même un correctif grâce aux backports source fournis par l’équipe de PHP.
Plateforme ✅ Corrigé ⏳ Correctif en attente ❌ Aucun correctif Sources officielles php.net, sources PHP 8.2 à 8.5 php.net, Windows PHP 8.2 à 8.5 Linux Debian Debian 13 : PHP 8.4
Debian 12 : PHP 8.2
Debian 9 à 11 : PHP 7.0 à 7.4, avec Debian ELTSDebian testing : PHP 8.4 Ubuntu Ubuntu 22.04 à 26.10 : PHP 8.1 à 8.5
Ubuntu 14.04 à 20.04 : PHP 5.5 à 7.4, avec Ubuntu ProDépôts d’Ondřej Surý PPA Ubuntu : PHP 5.6 à 8.5
packages.sury.org en amd64 : PHP 5.6 à 8.5packages.sury.org en arm64 RHEL RHEL 10 : PHP 8.3 et 8.4
RHEL 9 : PHP 8.0, 8.2 et 8.3
RHEL 8 : PHP 7.4 et 8.2RHEL 9 : PHP 8.4 RHEL 9 : PHP 8.1
RHEL 8 : PHP 7.2, 7.3 et 8.0AlmaLinux Tous les flux : PHP 7.2 à 8.4 Rocky Linux Les mêmes versions que RHEL Rocky 8 : PHP 8.2 Dépôt de Remi PHP 7.4 à 8.5 PHP 5.6 à 7.3 Fedora Fedora 44 : PHP 8.5 Fedora 43 : PHP 8.4 Amazon Linux Amazon Linux 2023 : PHP 8.2 à 8.5
Amazon Linux 2, dépôt extra : PHP 8.2Amazon Linux 2023 : PHP 8.1
Amazon Linux 2, dépôt principal : paquetphpAlpine Alpine 3.24 et edge : PHP 8.3 à 8.5
Alpine 3.23 : PHP 8.3 et 8.5Alpine 3.23 : PHP 8.4
Alpine 3.21 : PHP 8.2Alpine 3.22 : PHP 8.2 à 8.4
Alpine 3.21 : PHP 8.3 et 8.4Arch Linux Paquet php: PHP 8.5
Paquetphp-legacy: PHP 8.3SUSE SLES 15 SP7 : PHP 8.3
openSUSE Tumbleweed : PHP 8.5SLES 16 : PHP 8.4 openSUSE Leap : toutes les versions macOS Homebrew PHP 8.2 à 8.5 PHP 8.1 Tap shivammathur/php PHP 7.4, et PHP 8.1 à 8.5 MacPorts PHP 8.2 à 8.5 PHP 7.4 et 8.1 Docker Image officielle phpPHP 8.2 à 8.5
Variantes cli, apache, fpm et zts
Debian trixie, Debian bookworm, Alpine 3.23 et Alpine 3.24PHP 7.4, 8.0 et 8.1 serversideup/php PHP 8.2 à 8.5, versions v5.0.2 et v4.5.3 Chainguard PHP 8.2 à 8.5 Docker Hardened Images PHP 8.2 à 8.5 webdevops/php PHP 8.2 à 8.5 PHP 8.1 thecodingmachine/php PHP 8.2 à 8.5 PHP 8.1 Bitnami PHP 8.5, tag bitnami/php-fpm:latestPHP 8.2 à 8.4 : aucune image gratuite ubuntu/php Ubuntu 24.04 : PHP 8.3
Ubuntu 26.04 : PHP 8.5Red Hat UBI PHP 7.4, 8.0, 8.2, 8.3 et 8.4 PHP 8.1 Aikido Correctif non confirmé FrankenPHP FrankenPHP 1.13.2 Binaires statiques : PHP 8.5
Images Docker : PHP 8.2 à 8.5
Paquets deb, rpm et apk : PHP 8.2 à 8.5PaaS et serverless Clever Cloud PHP 7.4 à 8.5
Rien à faire.FrankenPHP 1.13.2. En attendant, FrankenPHP 1.13.1 tourne avec le PHP corrigé. Upsun PHP 7.4 à 8.5
Rien à faire.Heroku PHP 8.2 à 8.5
PHP 8.1 sur la stack heroku-22
Redéployez votre application.Laravel Cloud PHP 8.2 à 8.5
Rien à faire.Laravel Forge Cliquez sur « Update PHP » sur chaque serveur. Serveurs Ubuntu 20.04 et plus anciens Laravel Vapor PHP 8.2 à 8.5
Redéployez votre application.Bref PHP 8.2 à 8.5
Lancezcomposer update bref/bref -W, puis redéployez.Google App Engine Rien à faire. Google Cloud Run Redéployez les services déployés depuis les sources. Azure App Service (Linux) Canaux Latest et Standard : PHP 8.2 à 8.5
Rien à faire.Outils de développement Symfony CLI Symfony CLI utilise le PHP de votre machine.
Mettez à jour ce PHP.Laravel Herd Mise à jour de PHP Laravel Sail amd64 : lancez sail build --no-cache.arm64, par exemple un Mac avec puce Apple DDEV amd64 : contournement dans le billet de DDEV arm64 WampServer PHP 8.2 à 8.5 static-php-cli Binaires common,minimaletbulk: PHP 8.2 à 8.5
Binairesgnu-bulk: PHP 8.2 et 8.3
Binaires Windowsspc-min: PHP 8.2 à 8.5Binaires gnu-bulk: PHP 8.4 et 8.5
Binaires Windowsspc-maxXAMPP Les installeurs utilisent encore PHP 8.2.12. Lando Les images devwithlando/phpne sont pas reconstruites.Avec Docker : reconstruisez vos images avec
docker compose build --pull.Après la mise à jour : redémarrez PHP-FPM, Apache et les workers.
⚠ Sur Debian, Ubuntu et RHEL,
php -vaffiche l’ancien numéro, même avec le correctif. Vérifiez la version du paquet. Voir comment faire.
Le 21 octobre, l’équipe 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 baptisées PHP2Shell, CVE-2026-109618 et CVE-2026-109619. Elles sont de type RCE (Remote Code Execution), et permettent d’exécuter du code à distance sans authentification (score CVSS v4.0 de 9.2).
D’après l’avis de sécurité publié sur php.net, toute installation de PHP qui sert des requêtes web est exposée : PHP-FPM, Apache avec mod_php, php-cgi, FrankenPHP ou LiteSpeed. Le risque est le plus élevé avec mod_php.
Chaque distribution, chaque image Docker et chaque plateforme publie le correctif à son rythme. J’ai rassemblé ici, cas par cas, où trouver la version corrigée.
Dernière vérification : 22 octobre 2026, vers 11 h 44 (heure de Paris). Dans les tableaux :
- ✅ le correctif est publié ;
- ⏳ le correctif est en attente ;
- ❌ aucun correctif n’est disponible à ce jour.
Les versions à viser
| Branche | Version corrigée | Correctifs de sécurité jusqu’au |
|---|---|---|
| 8.5 | 8.5.12 | 31/12/2029 |
| 8.4 | 8.4.27 | 31/12/2028 |
| 8.3 | 8.3.36 | 31/12/2027 |
| 8.2 | 8.2.35 | 31/12/2026 |
| 8.1, 8.0, 7.4 | ❌ aucune nouvelle version | fin de vie |
L’équipe de PHP ne publie plus de version pour 8.1 et les branches plus anciennes. Elle a quand même publié des backports pour 7.4, 8.0 et 8.1. Ce sont des branches Git, sans tag ni archive à télécharger. Pour obtenir un paquet ou une image corrigée en 7.4, 8.0 ou 8.1, cherchez votre distribution ou votre image dans la suite de l’article.
Si vous êtes encore sur une version de PHP inférieure à 8.2, la meilleure manière de sécuriser vos installations est de mettre PHP à jour vers une version activement maintenue : 8.3 (fixes de sécurité uniquement), 8.4 ou 8.5.
⚠ PHP 8.2 arrive en fin de vie le 31 décembre 2026.
⚠ Sur Debian, Ubuntu, RHEL et leurs dérivés,
php -vaffiche toujours l’ancien numéro, même avec le correctif installé. Ces distributions backportent le correctif dans leur propre version de PHP. Par exemple, sur Ubuntu 24.04, le paquet corrigé affiche PHP 8.3.6. Pour savoir si vous êtes à jour, comparez la version du paquet installé avec la colonne « Version corrigée » de la section Linux. Les commandes qui affichent cette version sont dans la section Vérifier ce qui tourne vraiment.
Si vous ne pouvez pas mettre à jour tout de suite
L’avis de php.net liste des mesures d’atténuation. Elles réduisent l’exposition, mais elles ne remplacent pas la mise à jour. Voici les principales.
Contre CVE-2026-109619 :
- Mettez
session.upload_progress.enabled=0dans lephp.ini, le pool FPM ou la configuration du serveur.ini_set()et le fichier.user.inide FPM ne suffisent pas. - Sur PHP 8.5 uniquement, mettez aussi
fatal_error_backtraces=0. - Redémarrez ensuite tous les workers PHP.
Contre CVE-2026-109618 :
- Mettez
memory_limit=-1, de façon que l’application ne puisse pas le modifier : avecphp_admin_valuedans le pool FPM ou dans la configuration Apache. - Mettez un
post_max_sizebas :8M, ou32Msi l’application reçoit des fichiers. - N’utilisez pas
RLIMIT_ASniRLIMIT_DATApour limiter la mémoire : ils peuvent déclencher la faille. - Réduisez
max_input_nesting_level(64 par défaut), par exemple à16, etmax_input_vars(1000 par défaut), par exemple à500. Posez-les dans lephp.iniou le pool FPM :ini_set()ne peut pas les modifier. Vérifiez d’abord vos plus gros formulaires : au-delà demax_input_vars, PHP ignore les champs en trop.
Ces deux limites restent utiles après la mise à jour : d’après l’avis GHSA-w8hw-w9fx-j79w, elles réduisent le risque de saturation de la mémoire et de déni de service.
L’avis de php.net recommande aussi des limites à poser au niveau du serveur web ou du proxy : taille des requêtes, nombre de champs, nombre de parties multipart et nombre d’en-têtes.
Les sources officielles
Les archives sont sur la page de téléchargement de php.net. Chaque archive a son SHA256 et sa signature GPG (un fichier .asc à côté de l’archive). Les clés des release managers sont sur la page des clés GPG.
| Version | Archive | Tag GitHub |
|---|---|---|
| 8.5.12 | php-8.5.12.tar.xz | php-8.5.12 |
| 8.4.27 | php-8.4.27.tar.xz | php-8.4.27 |
| 8.3.36 | php-8.3.36.tar.xz | php-8.3.36 |
| 8.2.35 | php-8.2.35.tar.xz | php-8.2.35 |
Les archives existent aussi en .tar.gz et en .tar.bz2 : il suffit de changer l’extension dans l’URL.
Windows
Les builds Windows sont sur la page de téléchargement Windows de php.net. L’ancienne adresse windows.php.net redirige vers cette page.
Chaque version existe en Thread Safe et en Non Thread Safe, en x64 et en x86. Les SHA256 sont dans le fichier sha256sum.txt. Ces fichiers n’ont pas de signature GPG.
| Version | Compilateur | Archive x64 Non Thread Safe |
|---|---|---|
| 8.5.12 | VS17 | php-8.5.12-nts-Win32-vs17-x64.zip |
| 8.4.27 | VS17 | php-8.4.27-nts-Win32-vs17-x64.zip |
| 8.3.36 | VS16 | php-8.3.36-nts-Win32-vs16-x64.zip |
| 8.2.35 | VS16 | php-8.2.35-nts-Win32-vs16-x64.zip |
Pour la version Thread Safe, retirez -nts du nom du fichier. Pour le 32 bits, remplacez x64 par x86.
Linux
Sur un serveur, passez par le gestionnaire de paquets de votre distribution. Les tableaux ci-dessous donnent la version du paquet corrigé, telle que apt, dnf ou apk l’affiche.
Debian et Ubuntu
| Distribution | Paquet | Version corrigée | État |
|---|---|---|---|
| Debian 13 trixie | php8.4 | 8.4.27-1~deb13u1 | ✅ DSA-6574-1 |
| Debian 12 bookworm | php8.2 | 8.2.35-1~deb12u1 | ✅ DLA-4848-1 |
| Debian testing (forky) | php8.4 | 8.4.27-1 | ⏳ en attente de migration depuis sid (suivi) |
| Debian 11 bullseye | php7.4 | 7.4.33-1+deb11u14 | ✅ avec Debian ELTS, ELA-1853-1 |
| Debian 10 buster | php7.3 | 7.3.31-1~deb10u16 | ✅ avec Debian ELTS, ELA-1854-1 |
| Debian 9 stretch | php7.0 | 7.0.33-0+deb9u26 | ✅ avec Debian ELTS, ELA-1855-1 |
| Ubuntu 26.10 | php8.5 | 8.5.9-0ubuntu2.1 | ✅ USN-8948-1 |
| Ubuntu 26.04 LTS | php8.5 | 8.5.4-0ubuntu1.5 | ✅ USN-8948-1 |
| Ubuntu 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 | ✅ USN-8948-1 |
| Ubuntu 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 | ✅ USN-8948-1 |
| Ubuntu 20.04 | php7.4 | 7.4.3-4ubuntu2.29+esm5 | ✅ avec Ubuntu Pro, USN-8948-2 |
| Ubuntu 18.04 | php7.2 | 7.2.24-0ubuntu0.18.04.17+esm14 | ✅ avec Ubuntu Pro, USN-8948-2 |
| Ubuntu 16.04 | php7.0 | 7.0.33-0ubuntu0.16.04.16+esm22 | ✅ avec Ubuntu Pro, USN-8948-2 |
| Ubuntu 14.04 | php5 | 5.5.9+dfsg-1ubuntu4.29+esm18 | ✅ avec Ubuntu Pro, USN-8948-2 |
Le suivi complet est sur le security tracker de Debian et sur la page CVE d’Ubuntu.
Dépôts d’Ondřej Surý (packages.sury.org pour Debian, ppa:ondrej/php pour Ubuntu) :
- ✅ toutes les branches de 5.6 à 8.5 ont été reconstruites le 21 octobre, y compris 7.4, 8.0 et 8.1 (par exemple 8.1.34-9 pour 8.1) ;
- ✅ le PPA Ubuntu est à jour sur toutes les architectures ;
- ✅ packages.sury.org est à jour en amd64 ;
- ⏳ packages.sury.org est encore en attente en arm64, pour la plupart des branches ;
- ⚠ pour 5.6 à 7.1, un ticket signale un correctif incomplet. Une nouvelle build est annoncée.
Red Hat et ses dérivés
| Distribution | Flux | Version corrigée | État |
|---|---|---|---|
| RHEL 10 | php (8.3) | php-8.3.36-1.el10_2 | ✅ RHSA-2026:87070 |
| RHEL 10 | php8.4 | php8.4-8.4.27-1.el10_2 | ✅ RHSA-2026:87071 |
| RHEL 9 | php (8.0) | php-8.0.30-8.el9_8.1 | ✅ RHSA-2026:87151 |
| RHEL 9 | php:8.2 | php-8.2.35-1 | ✅ RHSA-2026:87072 |
| RHEL 9 | php:8.3 | php-8.3.36-1 | ✅ RHSA-2026:87079 |
| RHEL 9 | php:8.4 | ⏳ en attente (page CVE) | |
| RHEL 9 | php:8.1 | ❌ fin de vie, pas de correctif (page CVE) | |
| RHEL 8 | php:7.4 | php-7.4.33-8 | ✅ RHSA-2026:87080 |
| RHEL 8 | php:8.2 | php-8.2.35-1 | ✅ RHSA-2026:87073 |
| RHEL 8 | php:7.2, php:7.3, php:8.0 | ❌ fin de vie, pas de correctif (page CVE) |
- Rocky Linux : ✅ mêmes correctifs que RHEL, publiés le 22 octobre. Les avis portent les mêmes numéros, avec le préfixe RLSA au lieu de RHSA (par exemple RLSA-2026:87071 pour php8.4 sur Rocky 10). ⏳ Seul php:8.2 sur Rocky 8 est encore en attente.
- AlmaLinux : ✅ tous les flux sont corrigés, y compris ceux en fin de vie (7.2, 7.3, 8.0 et 8.1).
Dépôt de Remi (rpms.remirepo.net) :
- ✅ les dépôts EL8, EL9 et EL10 contiennent des paquets corrigés depuis le 21 octobre : 7.4.33-31, 8.0.30-21, 8.1.34-6, 8.2.35-1, 8.3.36-1, 8.4.27-1 et 8.5.12-1. Leur changelog cite les deux CVE ;
- ❌ les branches 5.6 à 7.3 ne sont pas corrigées ;
- ℹ l’avis de php.net annonçait que ce dépôt ne serait pas mis à jour le 21 octobre. Remi n’a encore publié aucun billet sur son blog.
Fedora, Amazon Linux, Alpine, Arch et SUSE
| Distribution | Paquet | Version corrigée | État |
|---|---|---|---|
| Fedora 44 | php | 8.5.12-1.fc44 | ✅ FEDORA-2026-a9eba4bbc3 |
| Fedora 43 | php | 8.4.27-2.fc43 | ⏳ dans updates-testing, FEDORA-2026-d5f8446449 |
| Amazon Linux 2023 | php8.2 | 8.2.35-1.amzn2023.0.1 | ✅ ALAS2023-2026-3301 |
| Amazon Linux 2023 | php8.3 | 8.3.36-1.amzn2023.0.1 | ✅ ALAS2023-2026-3302 |
| Amazon Linux 2023 | php8.4 | 8.4.27-1.amzn2023.0.1 | ✅ ALAS2023-2026-3303 |
| Amazon Linux 2023 | php8.5 | 8.5.12-1.amzn2023.0.1 | ✅ ALAS2023-2026-3304 |
| Amazon Linux 2023 | php8.1 | ❌ pas de correctif prévu (page CVE) | |
| Amazon Linux 2 | php (extra php8.2) | 8.2.35-1.amzn2.0.1 | ✅ ALAS2PHP8.2-2026-015 |
| Amazon Linux 2 | php (dépôt principal) | ❌ pas de correctif prévu (page CVE) | |
| Alpine edge et 3.24 | php83, php84, php85 | 8.3.36-r0, 8.4.27-r0, 8.5.12-r0 | ✅ paquets 3.24, paquets edge |
| Alpine 3.23 | php83, php85 | 8.3.36-r0, 8.5.12-r0 | ✅ paquets 3.23 |
| Alpine 3.23 | php84 | ⏳ en attente (paquets 3.23) | |
| Alpine 3.22 | php82, php83, php84 | ❌ aucun correctif à ce jour (paquets 3.22) | |
| Alpine 3.21 | php82 | ⏳ en attente (paquets 3.21) | |
| Alpine 3.21 | php83, php84 | ❌ aucun correctif à ce jour | |
| Arch Linux | php | 8.5.12-1 | ✅ ASA-202610-1 |
| Arch Linux | php-legacy | 8.3.36-1 | ✅ ASA-202610-2 |
| SLES 15 SP7 | php8 | 8.3.36 | ✅ page CVE SUSE |
| SLES 16.0 | php8 | 8.4.27 | ⏳ en validation (page CVE SUSE) |
| openSUSE Tumbleweed | php8 | 8.5.12 | ✅ dépôt de mises à jour |
| openSUSE Leap | php8, php7 | ❌ aucun correctif à ce jour (page CVE SUSE) |
Sur Amazon Linux 2023, un dnf update simple ne suffit pas : la version du dépôt est figée. Les avis ALAS (par exemple ALAS2023-2026-3303) donnent la commande, ici pour le paquet php8.4 :
dnf update php8.4 --releasever 2023.12.20261021
Les images Docker officielles php:*-alpine n’utilisent pas les paquets Alpine : elles compilent PHP elles-mêmes. Elles sont déjà corrigées, voir la section Les images Docker.
macOS
| Gestionnaire | Paquet | Version corrigée | État |
|---|---|---|---|
| Homebrew | php | 8.5.12 | ✅ |
| Homebrew | php@8.4 | 8.4.27 | ✅ |
| Homebrew | php@8.3 | 8.3.36 | ✅ |
| Homebrew | php@8.2 | 8.2.35 | ✅ |
| Homebrew | php@8.1 | ❌ formule dépréciée, pas de correctif | |
| Tap shivammathur/php | php, php@8.4, php@8.3, php@8.2 | 8.5.12, 8.4.27, 8.3.36, 8.2.35 | ✅ |
| Tap shivammathur/php | php@8.1, php@7.4 | 8.1.34_4, 7.4.33_16 (backport) | ✅ |
| MacPorts | php85, php84, php83, php82 | 8.5.12, 8.4.27, 8.3.36, 8.2.35 | ✅ |
| MacPorts | php81, php74 | ❌ aucun correctif à ce jour |
Avec Homebrew, mettez à jour la formule que vous utilisez, par exemple brew upgrade php@8.4.
Les images Docker
L’image officielle php
L’image officielle php est ✅ reconstruite dans toutes ses variantes (commit de mise à jour) :
- cli, apache, fpm et zts ;
- sur Debian trixie (la base par défaut) et sur Debian bookworm ;
- sur Alpine 3.23 et 3.24, sans la variante apache.
| Branche | Exemples de tags flottants | Exemples de tags précis |
|---|---|---|
| 8.5 | 8.5, 8.5-fpm, 8.5-apache, latest, fpm-alpine |
8.5.12-fpm, 8.5.12-zts-bookworm |
| 8.4 | 8.4, 8.4-fpm, 8.4-fpm-alpine, 8.4-zts |
8.4.27-fpm, 8.4.27-fpm-alpine3.24 |
| 8.3 | 8.3, 8.3-fpm, 8.3-fpm-alpine, 8.3-apache |
8.3.36-cli, 8.3.36-apache-trixie |
| 8.2 | 8.2, 8.2-fpm, 8.2-fpm-alpine, 8.2-apache |
8.2.35-fpm, 8.2.35-cli-alpine3.23 |
Votre tag pointe déjà sur la version corrigée, mais Docker utilise l’image qu’il a en cache. Sur une machine ou un runner de CI qui a déjà téléchargé php:8.4-fpm, un FROM php:8.4-fpm reconstruit sur l’ancienne 8.4.26. Ajoutez --pull au build pour forcer le téléchargement de la nouvelle image :
docker compose build --pull
docker compose up -d
Si votre compose.yaml utilise l’image telle quelle, sans étape de build, lancez docker compose pull avant docker compose up -d.
D’autres cas gardent l’ancienne version :
- Kubernetes : avec
imagePullPolicy: IfNotPresentet un tag flottant, chaque nœud garde l’image qu’il a en cache. - Image épinglée par digest (
php:8.4-fpm@sha256:…) : elle reste vulnérable. Remplacez le digest. - Image épinglée par version (
php:8.4.26-fpm) : elle reste vulnérable. Passez àphp:8.4.27-fpm. - PHP 8.1, 8.0 et 7.4 : ❌ les tags
8.1,8.0et7.4de l’image officielle ne sont plus reconstruits. Il n’existe pas d’image officielle corrigée pour ces versions.
Les autres images
| Image | Tags | Source |
|---|---|---|
| serversideup/php | ✅ v5.0.2 (8.4-fpm-nginx, 8.4.27-fpm-nginx-alpine, etc.) et v4.5.3 (tags *-v4.5.3), de 8.2 à 8.5 |
release v5.0.2, release v4.5.3 |
Chainguard cgr.dev/chainguard/php |
✅ latest (8.5.12), 8.4.27, 8.3.36, 8.2.35, avec leurs variantes -fpm et -dev |
fiche de l’image |
Docker Hardened Images dhi.io/php |
✅ 8.5.12, 8.4.27, 8.3.36, 8.2.35 (Debian 13 et Alpine), y compris le tag 8.5 |
journal des tags |
webdevops/php, php-nginx, php-apache |
✅ 8.2 à 8.5 et leurs variantes -alpine ; ❌ 8.1 |
tags |
| thecodingmachine/php | ✅ 8.2-v5-* à 8.5-v5-* ; ❌ 8.1-v5-* |
tags |
| bitnami/php-fpm | ✅ latest (8.5.12) uniquement ; ❌ aucun tag gratuit pour 8.4, 8.3 et 8.2 |
Dockerfile |
| ubuntu/php | ✅ 8.3-24.04 (paquet backporté 8.3.6-0ubuntu0.24.04.13) et 8.5-26.04_edge |
USN-8948-1 |
| Red Hat UBI | ✅ ubi10/php-84, ubi10/php-83, ubi9/php-83, ubi9/php-82, ubi9/php-80, ubi8/php-82, ubi8/php-74 ; ❌ ubi9/php-81 |
catalogue Red Hat |
Aikido aikido-dev/php |
❌ correctif non confirmé : les tags relevés sont encore en 8.4.26, 8.3.35 ou 8.2.34, sauf fpm-alpine (8.5.12) |
images.aikido.dev |
Pour PHP 8.0 et 7.4, les seules images corrigées que j’ai trouvées sont celles de Red Hat : ubi9/php-80 et ubi8/php-74. Elles contiennent les backports de RHEL.
FrankenPHP
Passez à FrankenPHP 1.13.2, sortie le 21 octobre. Elle embarque les versions corrigées de PHP. Elle corrige aussi quatre failles propres à FrankenPHP.
⚠ Le tag Docker 1.13.1 a été reconstruit avec PHP 8.5.12. PHP y est corrigé, mais pas les quatre failles propres à FrankenPHP.
| Installation | Où la trouver | PHP embarqué |
|---|---|---|
| Binaire statique (Linux x86_64 et aarch64, macOS arm64, Windows) | assets de la release v1.13.2 | 8.5.12 uniquement |
| Image Docker | dunglas/frankenphp : 1.13.2, php8.5, php8.4, php8.3, php8.2, avec ou sans suffixe -alpine ou -bookworm |
8.5.12, 8.4.27, 8.3.36, 8.2.35 |
| Paquets deb, rpm et apk | paquet frankenphp 1.13.2, un par branche de PHP |
8.2 à 8.5 |
| Homebrew | formule dunglas/frankenphp 1.13.2 |
8.5.12 |
- Les binaires statiques n’existent qu’avec PHP 8.5. Pour rester en 8.2, 8.3 ou 8.4 hors Docker, utilisez les paquets deb, rpm ou apk.
- Mac Intel : la release ne fournit plus de binaire. Il faut le compiler avec
build-static.sh.
Pour vérifier un binaire, lancez frankenphp version. La sortie doit indiquer FrankenPHP v1.13.2 et une version corrigée de PHP :
$ frankenphp version
FrankenPHP v1.13.2 PHP 8.5.12 Caddy v2.11.7 …
Les outils de développement
| Outil | Comment récupérer le PHP corrigé | État |
|---|---|---|
| Symfony CLI | il utilise le PHP installé sur la machine : mettez à jour ce PHP | |
| Laravel Herd | herd php:update 8.5 (remplacez 8.5 par votre branche). La doc prévient que les versions de correctif peuvent arriver avec quelques jours de retard |
⏳ rien d’annoncé |
| Laravel Sail | sail build --no-cache (image Ubuntu 24.04 avec les dépôts d’Ondřej Surý) |
✅ amd64 ; ⏳ arm64 (Mac Apple Silicon) |
| DDEV | contournement pour amd64 décrit dans le billet ; correctif complet attendu dans la v1.25.5 | ✅ amd64 avec le contournement ; ⏳ arm64 |
| Lando | images devwithlando/php non reconstruites, encore en 8.5.7 et 8.4.22 | ❌ |
| WampServer | addons PHP 8.2.35, 8.3.36, 8.4.27 et 8.5.12 | ✅ |
| XAMPP | installeurs encore en PHP 8.2.12 | ❌ |
| static-php-cli | binaires common, minimal et bulk en 8.2.35, 8.3.36, 8.4.27 et 8.5.12, pour Linux et macOS (sauf bulk pour Linux aarch64 en 8.4 et 8.5) ; binaires gnu-bulk en 8.2.35 et 8.3.36, pour Linux ; binaires Windows spc-min en 8.2.35, 8.3.36, 8.4.27 et 8.5.12 |
✅ common, minimal, bulk, gnu-bulk en 8.2 et 8.3, Windows spc-min ; ⏳ gnu-bulk en 8.4 et 8.5, Windows spc-max |
RoadRunner, Swoole et OpenSwoole n’embarquent pas PHP. Ils utilisent le PHP de la machine ou de l’image de base : c’est lui qu’il faut mettre à jour.
- ✅ l’image phpswoole/swoole a été reconstruite le 22 octobre ;
- ❌ l’image openswoole/swoole n’a pas été reconstruite.
Les plateformes PaaS et serverless
| Plateforme | Ce qu’il faut faire | Source |
|---|---|---|
| Clever Cloud | ✅ Rien à faire : redéploiement automatique en 8.2.35, 8.3.36, 8.4.27 et 8.5.12, et builds corrigés de 7.4.33, 8.0.30 et 8.1.34. FrankenPHP est en 1.13.1 avec PHP corrigé ; la 1.13.2 arrivera avec la prochaine mise à jour de l’image Clever Cloud | changelog, versions en fin de vie |
| Upsun | ✅ Rien à faire : redéploiement automatique, y compris en 7.4, 8.0 et 8.1. Vérifiez avec upsun ssh -- php -v |
billet |
| Heroku | ✅ Redéployez l’application. Buildpack v298 : 8.2.35 à 8.5.12, et 8.1.34 backporté sur la stack heroku-22 | changelog |
| Laravel Cloud | ✅ Rien à faire : corrigé sans redéploiement | billet |
| Laravel Forge | ✅ Bouton « Update PHP » sur chaque serveur, ou mise à jour en SSH ; ❌ Ubuntu 20.04 et versions antérieures ne peuvent pas être mis à jour | billet |
| Laravel Vapor | ✅ Redéployez | billet |
| Bref | ✅ composer update bref/bref -W, puis redéployez. Avec des images Docker : docker build --pull, puis redéployez |
billet |
| Google App Engine standard | ✅ Rien à faire : corrigé automatiquement | release notes |
| Google Cloud Run | ✅ Redéployez les services déployés depuis les sources | release notes |
| Azure App Service (Linux) | ✅ Rien à faire sur les canaux Latest et Standard. Avec un conteneur personnalisé, mettez à jour votre image | billet |
Vérifier ce qui tourne vraiment
PHP installé depuis les sources, l’image Docker officielle, Homebrew, ou les dépôts d’Ondřej Surý ou de Remi : php -v affiche directement le bon numéro. Comparez-le à la section Les versions à viser.
PHP installé avec les paquets de Debian, Ubuntu, RHEL ou de leurs dérivés : php -v affiche l’ancien numéro. Vérifiez plutôt la version du paquet installé. Elle doit être égale ou supérieure à la colonne « Version corrigée » de la section Linux.
Sur Debian et Ubuntu :
dpkg-query -W 'php*-cli'
Sur RHEL, AlmaLinux, Rocky Linux et Fedora :
rpm -qa 'php*-cli*'
Sur Alpine :
apk info -v | grep php
Dans un conteneur, interrogez le PHP du conteneur en cours d’exécution, après avoir reconstruit l’image avec --pull (voir la section Les images Docker). Remplacez php par le nom de votre service Compose :
docker compose exec php php -v
Enfin, redémarrez tout ce qui exécute PHP. Un processus déjà lancé garde l’ancienne version en mémoire, même après la mise à jour du paquet :
- PHP-FPM et Apache, si votre gestionnaire de paquets ne l’a pas fait ;
- les workers Messenger et les autres commandes qui tournent en continu ;
- FrankenPHP en mode worker et RoadRunner.
Pour aller plus loin
- Le billet de la PHP Foundation raconte la fuite des détails des failles et la sortie avancée d’un jour.
- Les deux avis de sécurité, GHSA-w8hw-w9fx-j79w et GHSA-6wmf-4rv5-p3rp, donnent tous les détails techniques.
- Le CERT-FR a publié une alerte en français.