Komponent Symfony\Component\Yaml\Parser zawiera podatność typu ReDoS (Regular Expression Denial of Service), która pozwala atakującemu na przesłanie spreparowanego wejścia YAML, powodując arbitralnie długie zawieszenie procesu parsowania. Podatność może prowadzić do niedostępności usługi (DoS) bez wymagania jakiegokolwiek uwierzytelnienia.
▸ 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::cleanup() used regular expressions with overlapping quantifiers for YAML directive, comment, and document marker cleanup, allowing crafted input to make parsing hang for an arbitrarily long time. This issue is fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.
Metoda cleanup() w parserze YAML frameworka Symfony wykorzystuje wyrażenia regularne z nakładającymi się kwantyfikatorami (overlapping quantifiers) podczas czyszczenia dyrektyw YAML, komentarzy oraz markerów dokumentów. Specjalnie spreparowane dane wejściowe mogą wywołać efekt katastrofalnego nawracania (catastrophic backtracking) w silniku wyrażeń regularnych, skutkując wykładniczym wzrostem czasu przetwarzania. Atakujący nieposiadający żadnych uprawnień może zdalnie dostarczyć takie dane wejściowe, prowadząc do trwałego zablokowania procesu parsowania.
Atakujący może spowodować całkowitą niedostępność aplikacji (Denial of Service) poprzez zablokowanie procesu przetwarzającego dane YAML na arbitralnie długi czas, bez możliwości obsługi kolejnych żądań.
Należy zaktualizować Symfony do wersji 5.4.52, 6.4.40, 7.4.12 lub 8.0.12, w których podatność została wyeliminowana poprzez poprawę wyrażeń regularnych w metodzie cleanup(). Patche dostępne są w referencjach producenta na GitHub.
Symfony w wersjach wcześniejszych niż 5.4.52, 6.4.40, 7.4.12 oraz 8.0.12.
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