Corruption lors d’un épuisement mémoire

CVE-2026-109618 concerne une sortie prématurée sur OOM laissant accessible une mémoire partiellement initialisée, ensuite utilisée au nettoyage. Le patch remplace ce mécanisme par une gestion mémoire douce et dure. Une RCE complète est confirmée sur mod_php. FPM est considéré exposé à des chemins applicatifs, sans démonstration complète pour cette CVE.

FPM est-il exempté ?

Non. FPM termine son processus enfant si le démarrage de requête échoue, ce qui bloque certaines séquences initiales. Les chemins applicatifs et interrequêtes subsistent. N’assimilez pas toutes les configurations à la démonstration mod_php, mais ne dispensez pas FPM de mise à jour.

Prudence avec la mémoire

memory_limit=-1 ne supprime que certains OOM contrôlables par la limite PHP. L’allocation système peut encore échouer. Prévoyez une limite indépendante de conteneur ou cgroup. Ne remplacez pas par RLIMIT_AS ou RLIMIT_DATA. Bornez corps décodés, en-têtes multipart, parties et imbrication ; post_max_size seul ne suffit pas.

2. Installer un binaire corrigé

Les premières versions corrigées sont 8.2.35, 8.3.36, 8.4.27 et 8.5.12. Choisissez une branche prise en charge et mettez aussi les extensions à jour. Testez applications et sondes de santé. Utilisez PHP ou votre fournisseur ; WAF et mise à jour du CMS ne remplacent pas le patch.

Quatre branches. Une cible précise.
Branche PHPVersions amont inférieures àPremière version corrigéeFin du support de sécurité
PHP 8.5< 8.5.12✓ 8.5.1231 déc. 2029
PHP 8.4< 8.4.27✓ 8.4.2731 déc. 2028
PHP 8.3< 8.3.36✓ 8.3.3631 déc. 2027
PHP 8.2< 8.2.35✓ 8.2.3531 déc. 2026
PHP 8.1 ou antérieur ?

Aucune publication PHP habituelle n’est prévue pour ces branches. Des rétroportages source minimaux existent pour 7.4, 8.0 et 8.1. Vérifiez séparément le support du fournisseur. Lire le guide ↗

Sources primaires et lectures complémentaires

PHP security teamSecurity advisory · 21 Oct 2026
CVE-2026-109618GHSA-w8hw-w9fx-j79w · OOM corruption
CVE-2026-109619GHSA-6wmf-4rv5-p3rp · Stale global state
Étape suivante3. Redémarrer et vérifier partout ↗