Skip to main content
WebguneWebgunebeta
Pricing
Toutes les failles

ÉlevéeCVE-2026-109413October 27, 2026

Symfony : Une récursion non bornée dans le Lexer Inline YAML permet à un seul document de faire planter le processus

Conséquences sérieuses, souvent sous quelques conditions : à corriger rapidement.

Sévérité
Élevée8.7 / 10
Publiée le
October 27, 2026
Mise à jour
October 27, 2026

L'avis

Traduction automatique de l'avis officiel. En cas de doute, l'avis d'origine, plus bas, fait foi.

Description

Yaml\Parser::lexInlineStructure() récursait à travers lexInlineMapping() et lexInlineSequence() pour chaque { et [ d'une collection inline, sans entrer dans le niveau d'imbrication que le reste du parser limite avec maxNestingLevel. Un document composé de collections inline profondément imbriquées, tel que [[[[...]]]], a épuisé la pile lors de son analyse : selon la version PHP et ses paramètres de pile, le processus a crashé ou la demande s'est terminée avec une erreur fatale.

Tout code analysant un YAML non fiable est affecté. Cela inclut #[MapRequestPayload] lorsque le composant Yaml est installé et que l'endpoint ne restreint pas acceptFormat : une seule demande non authentifiée avec un type de contenu YAML suffit.

Resolution

Le lexer inline entre et quitte maintenant le même niveau d'imbrication que le reste du parser, de sorte que les collections inline imbriquées sont bornées par maxNestingLevel, et le parser lève une ParseException au-delà de ce niveau.

Les correctifs pour ce problème sont disponibles here (new window) pour la branche 5.4 (et portés vers 6.4, 7.4, 8.1 et 8.2).

Credits

Nous aimerions remercier Nicolas Grekas pour avoir signalé le problème et fourni le correctif.

References
  • Correctif : #65688 (new window)

Composants touchés

ComposantVersions touchéesCorrigé en
symfony/symfonyPHP (Composer)>= 2.0.0, < 5.4.545.4.54
symfony/symfonyPHP (Composer)>= 6.0.0, < 6.4.456.4.45
symfony/symfonyPHP (Composer)>= 7.0.0, < 7.4.187.4.18
symfony/symfonyPHP (Composer)>= 8.0.0, < 8.1.68.1.6
symfony/yamlPHP (Composer)>= 2.0.0, < 5.4.545.4.54
symfony/yamlPHP (Composer)>= 6.0.0, < 6.4.456.4.45
symfony/yamlPHP (Composer)>= 7.0.0, < 7.4.187.4.18
symfony/yamlPHP (Composer)>= 8.0.0, < 8.1.68.1.6

Vous utilisez une version touchée ? Passez à la version corrigée, puis redéployez.

Symfony: Unbounded Recursion in the YAML Inline Lexer Lets a Single Document Crash the Process

Description

Yaml\Parser::lexInlineStructure() recursed through lexInlineMapping() and lexInlineSequence() for every { and [ of an inline collection, without entering the nesting level that the rest of the parser bounds with maxNestingLevel. A document made of deeply nested inline collections, such as [[[[...]]]], exhausted the stack while it was being lexed: depending on the PHP version and its stack settings, the process crashed or the request ended with a fatal error.

Any code parsing untrusted YAML is affected. That includes #[MapRequestPayload] when the Yaml component is installed and the endpoint does not restrict acceptFormat: a single unauthenticated request with a YAML content type is enough.

Resolution

The inline lexer now enters and leaves the same nesting level as the rest of the parser, so nested inline collections are bounded by maxNestingLevel, and the parser raises a ParseException beyond it.

The patches for this issue are available here (new window) for branch 5.4 (and forward-ported to 6.4, 7.4, 8.1 and 8.2).

Credits

We would like to thank Nicolas Grekas for reporting the issue and providing the fix.

References
  • Fix: #65688 (new window)

Catégorie : Uncontrolled Recursion (CWE-674)

Vecteur CVSS : CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

  • github.comhttps://github.com/symfony/symfony/security/advisories/GHSA-2v3c-qxhr-7vpv
  • nvd.nist.govhttps://nvd.nist.gov/vuln/detail/CVE-2026-109413
  • github.comhttps://github.com/symfony/symfony/pull/65688
  • github.comhttps://github.com/symfony/symfony/commit/116287c3b5bc057e7a0420d2e52d384e14ea9417
  • github.comhttps://github.com/symfony/symfony/commit/2a8bf9c58d862b0c76a35ce288d1ba6a27223aad
  • github.comhttps://github.com/symfony/symfony/commit/8fb436fed9658a79d220e9f2b1ba8a2095559018
  • github.comhttps://github.com/symfony/symfony/commit/ab61e6cfd35042f16840a00f485eab2481dd4c2a
  • github.comhttps://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2026-109413.yaml
  • github.comhttps://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/yaml/CVE-2026-109413.yaml
  • github.comhttps://github.com/symfony/symfony/releases/tag/v5.4.54
  • github.comhttps://github.com/symfony/symfony/releases/tag/v6.4.45
  • github.comhttps://github.com/symfony/symfony/releases/tag/v7.4.18
  • github.comhttps://github.com/symfony/symfony/releases/tag/v8.1.6
  • symfony.comhttps://symfony.com/blog/cve-2026-109413-unbounded-recursion-in-the-yaml-inline-lexer-lets-a-single-document-crash-the-process
  • symfony.comhttps://symfony.com/cve-2026-109413
WebguneWebgune

The all-in-one sovereign cloud, built and hosted in France.

DiscordDiscordGitHubGitHub
+33 (0)9 72 23 25 00support@webgune.cloud

Product

  • Features
  • Pricing
  • Comparison
  • Changelog
  • Status
  • Vulnerabilities (CVE)
  • Contact

Developers

  • Documentation
  • Frameworks
  • API Reference
  • Examples
  • CLI
  • Tools & VS Code

Legal

  • Terms of Service (CGS)
  • Privacy policy
  • Legal notices
  • Accessibility
  • GDPR
  • DPA
  • Acceptable Use Policy

© 2026 KX712. All rights reserved. Webgune is a KX712 service.

Payments:VisaMasterCardAmerican ExpressApple PayGoogle PaySEPABancontact