CVE-2026-46629
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Twig (wersje przed 3.26.0) pozwala na alokację dużej liczby obiektów formaterów ICU poprzez kontrolowane przez szablon argumenty filtrów, co prowadzi do wyczerpania pamięci. Problem został naprawiony w wersji 3.26.0.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do przeprowadzenia ataku typu DoS (Denial of Service) poprzez przeciążenie serwera aplikacji, co może skutkować niedostępnością usług dla użytkowników.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę Twig do wersji 3.26.0 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy ograniczyć dostęp do szablonów kontrolowanych przez użytkownika.
Inne podatności w Twig
Zobacz wszystkie- CVE-2026-48807Krytyczne
W bibliotece Twig dla PHP wykryto podatność polegającą na niepełnym sprawdzaniu obiektów implementujących interfejs Stringable w kontekście sandboksowania. Przed wersją 3.27.0 mechanizm sandboksowania nie obejmował wszystkich przypadków konwersji na łańcuch znaków dla wartości Traversable przekazywanych do filtrów join i replace oraz operatorów in i not in, co umożliwiało ominięcie polityki sandboksowania.
- CVE-2026-48806Krytyczne
Podatność w bibliotece Twig dla PHP przed wersją 3.27.0 pozwala na ominięcie mechanizmu SandboxExtension::ensureToStringAllowed() podczas konwersji kluczy mapowania na łańcuchy znaków. Atakujący może wykorzystać obiekt implementujący __toString() jako klucz tablicy asocjacyjnej, co prowadzi do nieautoryzowanego wywołania tej metody.
- CVE-2026-48805Krytyczne
Podatność w bibliotece Twig przed wersją 3.27.0 pozwala na ominięcie ograniczeń sandboxa poprzez przestarzałe wewnętrzne funkcje w pliku src/Resources/core.php. Funkcje takie jak twig_array_some(), twig_array_every() i twig_check_arrow_in_sandbox() nie przekazują bieżącego stanu sandboxa do odpowiednich metod CoreExtension, co umożliwia atakującemu wykonanie nieautoryzowanych wywołań.
- CVE-2026-46634Krytyczne
Podatność w bibliotece Twig dla PHP (wersje od 3.9.0 do 3.26.0) pozwala na ominięcie polityki bezpieczeństwa SourcePolicyInterface podczas renderowania szablonów za pomocą funkcji template_from_string(). Wewnętrzny szablon jest kompilowany pod syntetyczną nazwą, która może znajdować się poza zakresem decyzji sandboksowania, co umożliwia atakującemu wykonanie kodu bez wymuszenia polityki bezpieczeństwa.
- CVE-2026-46633Krytyczne
Podatność w silniku szablonów Twig dla PHP przed wersją 3.26.0. Funkcja Compiler::string() nie escapuje apostrofów, gdy nazwa szablonu z tagu {% use %} jest umieszczana w literale łańcuchowym PHP, co pozwala na wstrzyknięcie dowolnego kodu PHP do skompilowanego pliku cache.
- CVE-2026-49981Wysokie
Podatność w bibliotece Twig dla PHP umożliwia obejście mechanizmu sandboxa. Lista dozwolonych filtrów, tagów i funkcji jest obliczana przy tworzeniu instancji szablonu i może pozostać w pamięci podręcznej po zmianie stanu sandboxa między renderowaniami.
- CVE-2026-48808Wysokie
Podatność w silniku szablonów Twig dla PHP przed wersją 3.27.0 powoduje, że filtr 'column' przekazuje stan piaskownicy jako wartość logiczną, ale nie przekazuje bieżącego źródła do metody checkPropertyAllowed() w SandboxExtension. W rezultacie decyzje SourcePolicyInterface są tracone, a autor szablonu może odczytać publiczne lub magiczne właściwości, które nie są dozwolone przez politykę piaskownicy.
- CVE-2026-47732Średnie
Podatność w silniku szablonów Twig przed wersją 3.26.0 umożliwia ominięcie mechanizmu sandboxa. Kilka konstrukcji językowych (wyrażenia warunkowe, operatory porównania, testy, tagi ładujące szablony, dynamiczne nazwy atrybutów, argumenty spread, tag 'do' oraz operator zakresu '..') wywołuje konwersję łańcuchową na obiektach implementujących Stringable bez sprawdzenia metody checkMethodAllowed() w SecurityPolicy.
- CVE-2026-47730Średnie
W bibliotece Twig (wersje od 3.0.0 do 3.26.0) klasa Twig\Profiler\Dumper\HtmlDumper zapisuje wyniki Profile::getTemplate() i Profile::getName() do wyjścia HTML bez odpowiedniego escapingu. Pozwala to atakującemu na wstrzyknięcie dowolnego kodu HTML poprzez kontrolowane nazwy szablonów lub profili, gdy przeglądarka renderuje zrzut profilera.
- CVE-2026-46640Wysokie
Podatność w bibliotece Twig dla PHP (wersje 3.15.0 do 3.26.0) pozwala atakującemu na wstrzyknięcie kodu PHP poprzez składnię dynamicznych atrybutów _self.(<string>) i aliasów importu. Brak walidacji identyfikatorów powoduje, że kontrolowany przez atakującego ciąg znaków jest emitowany jako surowy PHP do generowanego szablonu i wykonywany podczas jego ładowania.
Oryginalny opis (angielski, źródło NVD)
Twig is a template language for PHP. Prior to 3.26.0, twig/intl-extra memoises IntlDateFormatter and NumberFormatter instances in arrays keyed by template-controlled filter arguments such as locale, pattern, and attrs, allowing a template to allocate many ICU formatter objects that remain pinned for the lifetime of the Twig\Environment. This issue is fixed in version 3.26.0.

