Sécurité et confidentialité

PHP publie des correctifs de sécurité urgents pour des failles critiques d'exécution de code à distance

PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35 corrigent deux vulnérabilités critiques permettant l'exécution de code à distance non authentifié via une corruption de la mémoire et un état global obsolète.

Illustration d'un rack de serveurs fissuré avec des circuits lumineux fuitant, représentant des vulnérabilités de sécurité.
Illustration générée pour cet article

Traduit automatiquement depuis l'original anglais.

Le projet PHP a publié des mises à jour de sécurité immédiates pour les versions 8.5.12, 8.4.27, 8.3.36 et 8.2.35 afin de corriger deux vulnérabilités critiques. Ces failles permettent à des attaquants non authentifiés d'exécuter du code arbitraire sur des serveurs exécutant PHP sous certaines conditions. Cette publication fait suite à un effort de divulgation coordonnée qui a été partiellement perturbé par des fuites prématurées des identifiants de vulnérabilité.

Ce qui s'est passé

Les versions mises à jour corrigent CVE-2026-109618 et CVE-2026-109619, toutes deux classées avec une sévérité élevée. La première vulnérabilité implique une exécution de code à distance via une corruption liée à un manque de mémoire (OOM). Si une requête atteint la limite de mémoire de PHP à un moment précis, le moteur peut laisser des données internes partiellement initialisées en mémoire. Les opérations ultérieures peuvent considérer ces données comme valides, entraînant une corruption de la mémoire. Sur Apache avec mod_php, une requête non authentifiée peut déclencher ce problème avant l'exécution de tout code applicatif, permettant une exécution complète de code à distance même avec les paramètres par défaut. Les chercheurs ont également confirmé des vecteurs d'exploitation via PHP-FPM au niveau du code applicatif.

La seconde vulnérabilité provient d'une gestion obsolète de l'état global. Une erreur fatale survenant à un point spécifique peut laisser des pointeurs internes référençant une mémoire libérée lors d'une requête précédente. Les requêtes suivantes traitées par le même processus worker peuvent accéder à cette mémoire libérée, provoquant des erreurs d'utilisation après libération (use-after-free), des plantages des workers et potentiellement une exécution de code à distance. Cela a été démontré contre des applications réelles fonctionnant sur Apache avec mod_php. Les deux problèmes résident dans des composants centraux touchés par presque chaque requête, ce qui les rend particulièrement dangereux et difficiles à corriger sans impacter les performances ou casser la compatibilité avec les extensions tierces.

Fonctionnement technique

Ces vulnérabilités exploitent des aspects fondamentaux des systèmes de gestion de la mémoire et de traitement des erreurs de PHP. Dans le scénario OOM, le moteur ne parvient pas à réinitialiser proprement son état interne lorsque les limites de mémoire sont atteintes. Au lieu de s'arrêter de manière sûre, il laisse derrière lui des structures corrompues que les opérations suivantes interprètent à tort comme des données valides. Cela permet à un attaquant de manipuler la disposition de la mémoire en déclenchant un épuisement de la mémoire à des points stratégiques, finissant par prendre le contrôle du flux d'exécution.

Le problème d'état global obsolète découle de la manière dont PHP gère les ressources entre plusieurs requêtes au sein du même processus worker. Lorsqu'une erreur fatale survient, les routines de nettoyage peuvent ne pas invalider complètement les pointeurs vers la mémoire précédemment allouée. Si une nouvelle requête réutilise ces pointeurs pendus, elle accède à des régions mémoire invalides. Les attaquants peuvent concevoir des séquences de requêtes qui déclenchent ces erreurs, puis exploiter la confusion mémoire résultante pour injecter et exécuter du code malveillant. Comme ces mécanismes sont centraux dans le fonctionnement de PHP, leur correction a nécessité un équilibre délicat entre sécurité, performance et compatibilité ascendante.

Détails clés

  • Versions affectées : PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35 contiennent les correctifs ; les anciennes versions non supportées restent vulnérables.
  • CVE-2026-109618 : Exécution de code à distance via une corruption due à un manque de mémoire, exploitable sur Apache/mod_php sans authentification.
  • CVE-2026-109619 : Exécution de code à distance via un état global obsolète et une utilisation après libération, confirmée sur Apache/mod_php.
  • Perturbation de la divulgation : Les IDs CVE ont fuité le 20 octobre, entraînant une accélération du calendrier de publication, passant du 22 octobre au 21 octobre.
  • Contributeurs à la recherche : Calif, OpenAI, Wiz et Trail of Bits ont identifié et signalé les vulnérabilités via des canaux de divulgation responsable.
  • Historique de la cause racine : Le problème OOM avait été théorisé initialement en 2024 mais manquait d'un vecteur d'exploitation concret jusqu'à ce que des recherches assistées par IA clarifient récemment le chemin d'attaque.

Pourquoi c'est important

Pour les équipes maintenant des applications PHP, ces vulnérabilités représentent un risque significatif car elles peuvent être déclenchées sans authentification et affectent le comportement du moteur central. Le fait que l'exploitation soit possible sur des configurations par défaut signifie que de nombreux environnements de production sont exposés tant qu'ils ne sont pas patchés. La complexité des correctifs met en évidence la dette technique accumulée dans des projets de longue date comme PHP, où modifier la logique de gestion de la mémoire risque de casser d'innombrables extensions tierces et applications existantes.

L'incident souligne également l'évolution du paysage de la recherche en sécurité logicielle. Les outils assistés par IA ont joué un rôle majeur dans l'identification et la validation de ces vulnérabilités, accélérant le processus de découverte par rapport aux audits manuels traditionnels. Cependant, cette même technologie augmente le volume de rapports que les équipes de sécurité doivent trier, y compris beaucoup de soumissions invalides ou dupliquées. Les récents investissements de la Fondation PHP dans du personnel de sécurité professionnel et des outils automatisés ont été cruciaux pour gérer cet afflux et livrer des correctifs en temps opportun, démontrant la nécessité d'un financement soutenu pour la sécurité des infrastructures open source.

Que pouvez-vous faire

  • Mettez à jour vos installations PHP vers la version 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 immédiatement, selon votre branche actuelle.
  • Vérifiez que votre pipeline de déploiement peut récupérer automatiquement ces versions mises à jour depuis votre gestionnaire de paquets ou dépôt de distribution.
  • Passez en revue les logs serveur pour détecter des événements inhabituels d'épuisement de mémoire ou des erreurs fatales qui pourraient indiquer une tentative d'exploitation avant la mise à jour.
  • Envisagez de parrainer la Fondation PHP si votre organisation dépend de PHP, car leur travail soutient directement la sécurité et la stabilité de l'écosystème.
  • Surveillez les canaux officiels de PHP pour toute autre alerte, car la fuite récente pourrait avoir accéléré le développement de preuves de concept publiques.
  • Évaluez votre utilisation de mod_php versus PHP-FPM, car les vecteurs d'attaque diffèrent légèrement entre ces configurations, bien que les deux soient affectées.
  • #php
  • #security
  • #vulnerability
  • #open source
  • #memory safety

Outils de la Boutique Bytechap

Continuer la lecture

Tous les articles