Saltar al contenido
DUPIN
ALERTAS · EN VIVO
Contacto

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.7ALTA

PROBABILIDAD 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

    • hasta antes de v5.4.54
    • desde v6.0.0-BETA1 hasta antes de v6.4.48
    • desde v7.0.0-BETA1 hasta antes de v7.4.21
    • desde v8.0.0-BETA1 hasta antes de v8.1.9

Qué hacer

  1. Verificá si usás symfony y en qué versión: el rango afectado figura arriba.
  2. Actualizá a la versión corregida que indique el fabricante en su aviso (ver referencias) o aplicá la mitigación que publique.
  3. 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

Historial de la alerta

  1. 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.