Symfony a publié 5.4.54 le 15 octobre 2026 pour sa branche 5.4. Cette version de sécurité est signée. Fabien Potencier en est l’auteur sur GitHub, et le tag baea8c8 porte une signature vérifiée par GitHub. Le changelog couvre les changements entre v5.4.53 et v5.4.54.
Trois CVE sont corrigés. ExpressionLanguage limite désormais la profondeur d’imbrication des expressions analysées. HttpFoundation supprime une ambiguïté qui pouvait provoquer un backtracking dans HeaderUtils::split(). Yaml borne la profondeur de récursion de son analyseur inline. Des corrections associées limitent la profondeur de l’arbre syntaxique des expressions, traitent les ternaires chaînés et renvoient une erreur maîtrisée lorsque !!binary reçoit une valeur impossible à analyser.
HttpClient ne réinjecte plus l’option de requête dans les cibles de redirection de NoPrivateNetworkHttpClient. Les réponses très compressées sont acceptées, tandis que les bombes de décompression sont bloquées. Des plages non routables supplémentaires sont prises en compte. Le client refuse les proxies HTTPS auxquels curl se connecterait en clair. Lorsqu’une redirection change d’autorité, l’en-tête Host d’origine est supprimé. Un changement de schéma entraîne l’abandon des identifiants. Les réponses poussées en 3xx sont rejetées.
HttpFoundation valide les ports des adresses IPv6 mappées en IPv4 transmises par proxy, ainsi que les hôtes et les schémas des URL. Les chemins invalides, les caractères réservés dans les chemins et domaines de cookies et les valeurs non autorisées de X-Sendfile-Type sont refusés. Les chemins de X-Accel-Redirect sont encodés. Les motifs d’hôtes de confiance sont regroupés pour éviter les limites de PCRE. Les gestionnaires de session ne sont plus sérialisables. Mime rejette les noms d’en-tête invalides, les caractères de contrôle bruts et les adresses e-mail mal formées. Process utilise un chemin absolu pour le repli vers cmd.exe sous Windows, filtre les variables d’environnement invalides et empêche la transmission de variables CGI ou FastCGI aux sous-processus.
Les composants Security ne copient plus les jetons de session dans les journaux. Les cookies remember-me mal formés et les paramètres invalides des liens de connexion sont traités sans erreur fatale. Les appels imbriqués historiques à unserialize() ont été retirés des classes de jetons et d’exceptions. Les redirections avec sessions désactivées restent limitées à l’hôte courant. Certains appels à unserialize() utilisent allowed_classes => false. Les jetons du profiler sont validés avant leur emploi comme noms de fichier. Le throttling des connexions utilise désormais un verrou par défaut. Une condition de concurrence liée à max_uses dans les liens de connexion est réduite.
Messenger valide les stamps des enveloppes décodées et désérialisées. Les en-têtes X-Message-Stamp-* sont restreints, et FlattenException n’intègre plus les arguments de trace dans sa normalisation. Serializer produit des clés de cache correctes lorsque le contexte n’est pas sérialisable. Les caches de MetadataAwareNameConverter sont séparés par instance. MimeMessageNormalizer vérifie que la classe désérialisée est bien une partie Mime.
La mise à jour corrige aussi les identifiants de session conservés par PHP, les valeurs de hash non textuelles dans UriSigner, la correspondance de l’URL "0", les jetons Redis utilisant le membre réservé "write" et l’échappement des caractères de contrôle C1 en UTF-8 dans VarDumper. RateLimiter plafonne la taille des bursts et leur durée calculée. Cache ne désérialise pas les valeurs que SodiumMarshaller ne peut pas déchiffrer. HttpKernel retire les en-têtes internes du cache des réponses backend. Les polyfills requis par le code sous PHP 7.2 sont déclarés. Les modes des fichiers sources sont conservés lors des copies, les fichiers tempnam() avec suffixe restent privés, et Console, MonologBridge et VarDumper échappent les chaînes de contexte écrites dans le terminal.




Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.