Katalog CVE

CVE-2026-109449

WysokieCVSS 8.7
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.52%

Percentyl 43 - wyżej niż 43% wszystkich znanych CVE

Streszczenie

W komponencie Symfony Expression Language w wersjach przed 5.4.54, 6.4.48, 7.4.21 i 8.1.9 parser budował drzewo węzłów bez ograniczenia głębokości. Wyrażenie złożone z dziesiątek tysięcy zagnieżdżonych operatorów jednoargumentowych, literałów tablicowych, operatorów binarnych lub dostępu do właściwości powodowało awarię procesu PHP podczas zwalniania drzewa.

Ocena ryzyka

Aplikacja walidująca wyrażenia pisane przez użytkowników (np. przez #[Assert\ExpressionSyntax] wywołujący ExpressionLanguage::lint()) może zostać zablokowana pojedynczym żądaniem, co stanowi ryzyko odmowy usługi. Dotyczy to również każdego kodu parsującego niezaufane wyrażenia.

Rekomendacja

Zaktualizuj bibliotekę symfony/expression-language do wersji 5.4.54, 6.4.48, 7.4.21 lub 8.1.9 (lub nowszej). Unikaj parsowania niezaufanych wyrażeń bez ograniczeń zasobów.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS