Komponent Symfony\Component\Yaml\Parser rozwiązywał aliasy kolekcji YAML rekurencyjnie, co umożliwiało przekształcenie niewielkiego, niezaufanego wejścia YAML w strukturę o rozmiarze wielu gigabajtów. Skutkuje to wyczerpaniem pamięci serwera i odmową usługi (DoS).
▸ Pokaż oryginał (EN)
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to 5.4.52, 6.4.40, 7.4.12, and 8.0.12, Symfony\Component\Yaml\Parser resolved YAML collection aliases recursively, allowing a small untrusted YAML input to expand into a multi-gigabyte structure and exhaust memory. This issue is fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.
Podatność wynika z braku ograniczenia głębokości lub liczby rozwinięć aliasów YAML (CWE-776 — XML Entity Expansion, analogicznie stosowane do YAML). Atakujący dostarcza specjalnie spreparowany dokument YAML zawierający zagnieżdżone aliasy kolekcji. Parser rozwiązuje je rekurencyjnie, co prowadzi do wykładniczego wzrostu rozmiaru przetwarzanej struktury danych w pamięci. Nawet bardzo mały plik wejściowy może wygenerować strukturę o rozmiarze wielu gigabajtów, doprowadzając do wyczerpania dostępnej pamięci procesu lub całego systemu.
Atakujący bez jakiegokolwiek uwierzytelnienia może zdalnie doprowadzić do wyczerpania pamięci serwera i całkowitej niedostępności aplikacji (DoS). Nie ma zagrożenia dla poufności ani integralności danych.
Należy zaktualizować Symfony do wersji 5.4.52, 6.4.40, 7.4.12 lub 8.0.12 (w zależności od używanej gałęzi). Patche dostępne są w oficjalnych repozytoriach projektu na GitHub. Do czasu aktualizacji należy unikać przetwarzania niezaufanych danych YAML przez podatny komponent.
Sensiolabs Symfony w wersjach wcześniejszych niż 5.4.52, 6.4.40, 7.4.12 oraz 8.0.12 — konkretnie komponent Symfony\Component\Yaml\Parser.
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XSensiolabs Symfony
APPSensiolabs< 5.4.526.0.0 – 6.4.40 (bez)7.0.0 – 7.4.12 (bez)8.0.0 – 8.0.12 (bez)
Powiązane podatności
Symfony X509Authenticator — obejście uwierzytelniania przez błędny regex DN
Symfony VarExporter — nieprawidłowe escapowanie umożliwia RCE
Symfony: zdalne wykonanie kodu przez serializację adaptera cache
Nieprawidłowa kontrola dostępu w komponencie Password validator — Symfony
SQL Injection i RCE w Symfony przez niezwalidowane identyfikatory serwisów