VULNERABILIDAD
CVE-2026-109449 Denegación de servicio en Symfony Expression Language por anidamiento sin límite en el parser
Antes de 5.4.54, 6.4.48, 7.4.21 y 8.1.9, el parser de ExpressionLanguage construye el árbol de nodos sin límite de profundidad. Una expresión con decenas de miles de operadores unarios, literales de array, operadores binarios o accesos a propiedades anidados provoca la caída del proceso PHP al liberar el árbol; como #[Assert\ExpressionSyntax] pasa el valor validado a ExpressionLanguage::lint(), una sola solicitud puede tumbar una aplicación que valide expresiones de sus usuarios.
Alerta de Nureq Monitor
Detectada 15 OCT · 13:17
CVSS 4.0
8.7ALTAPROBABILIDAD DE EXPLOTACIÓN (EPSS)
0,5 % PERCENTIL 44
EXPLOTACIÓN ACTIVA
No confirmada
EXPLOIT PÚBLICO
No conocido
Qué es CVE-2026-109449
Antes de 5.4.54, 6.4.48, 7.4.21 y 8.1.9, el parser de ExpressionLanguage construye el árbol de nodos sin límite de profundidad. Una expresión con decenas de miles de operadores unarios, literales de array, operadores binarios o accesos a propiedades anidados provoca la caída del proceso PHP al liberar el árbol; como #[Assert\ExpressionSyntax] pasa el valor validado a ExpressionLanguage::lint(), una sola solicitud puede tumbar una aplicación que valide expresiones de sus usuarios.
Productos y versiones afectadas
sensiolabs symfony
Qué hacer
- Verificá si usás symfony y en qué versión: el rango afectado figura arriba.
- Actualizá a la versión corregida que indique el fabricante en su aviso (ver referencias) o aplicá la mitigación que publique.
- Revisá registros y accesos de los sistemas expuestos para descartar que se haya aprovechado antes de corregir.
Calculadora CVSS
CVSS 4.0 · 8.7 ALTA
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
- VECTOR DE ATAQUE (AV)
- Red
- COMPLEJIDAD DEL ATAQUE (AC)
- Baja
- REQUISITOS DEL ATAQUE (AT)
- Ninguno
- PRIVILEGIOS REQUERIDOS (PR)
- Ninguno
- INTERACCIÓN DEL USUARIO (UI)
- Ninguna
- CONFIDENCIALIDAD (SISTEMA VULNERABLE) (VC)
- Ninguna
- INTEGRIDAD (SISTEMA VULNERABLE) (VI)
- Ninguna
- DISPONIBILIDAD (SISTEMA VULNERABLE) (VA)
- Alta
- CONFIDENCIALIDAD (SISTEMAS POSTERIORES) (SC)
- Ninguna
- INTEGRIDAD (SISTEMAS POSTERIORES) (SI)
- Ninguna
- DISPONIBILIDAD (SISTEMAS POSTERIORES) (SA)
- Ninguna
Abrir la calculadora completa →
Descripción original
In Symfony Expression Language versions prior to 5.4.54, 6.4.48, 7.4.21, and 8.1.9, the parser of the ExpressionLanguage component built its node tree with no bound on its depth. An expression made of tens of thousands of nested unary operators, array literals, binary operators or property accesses crashed the PHP process, while the tree was being freed.
#[Assert\ExpressionSyntax] passes the validated value to ExpressionLanguage::lint(), so an application validating expressions written by its users could be crashed by a single request, and so could any code parsing untrusted expressions.
This issue affects symfony/expression-language through v5.4.53, v6.0.0-BETA1 through v6.4.47, v7.0.0-BETA1 through v7.4.20, and v8.0.0-BETA1 through v8.1.8.
Referencias
- github.com/symfony/symfony/security/advisories/GHSA-7rpj-w9pf-39rrTHIRD-PARTY-ADVISORY
- symfony.com/blog/cve-2026-109449-unbounded-nesting-in-the-expression-parser-lets-untruste…VENDOR-ADVISORY
- github.com/symfony/symfony/pull/65690PATCH
- github.com/symfony/symfony/pull/66720PATCH
- github.com/symfony/symfony/pull/66723PATCH
Historial de la alerta
- VULNERABILIDAD Nueva vulnerabilidad detectada.
CÓMO SE HIZOResumen traducido automáticamente al español a partir de la descripción original. Ante dudas, la descripción original y las referencias del fabricante son la fuente de verdad. Cómo funciona.