Podatności Twig
18 znanych podatności CVE w Twig, przetłumaczonych i ocenionych.
- 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.
- CVE-2026-46639Średnie
Podatność w silniku szablonów Twig w wersjach od 3.24.0 do 3.26.0 powoduje, że podczas przypisania destrukcyjnego obiektów funkcja CoreExtension::getAttribute() jest wywoływana z parametrem sandbox ustawionym na false. To wyłącza sprawdzanie zasad dostępu do właściwości i metod, umożliwiając atakującemu z dostępem do zapisu w szablonie Twig w trybie sandbox odczytanie publicznych właściwości lub wywołanie publicznych getterów na obiektach przekazanych do silnika szablonów.
- CVE-2026-46638Wysokie
Podatność w bibliotece Twig dla PHP umożliwia ominięcie mechanizmu sandboxa podczas dołączania szablonów. Wersje przed 3.26.0 pozwalają na użycie tagów, filtrów i funkcji, które powinny być zablokowane przez politykę bezpieczeństwa.
- CVE-2026-46637Średnie
W bibliotece Twig wykryto podatność polegającą na rejestracji filtrów w rozszerzeniach twig/markdown-extra i twig/cssinliner-extra z flagą is_safe => [all]. Powoduje to, że Twig traktuje zwykły tekst lub wyjście HTML jako bezpieczne w kontekstach HTML, JavaScript, CSS i URL, gdzie dane wyjściowe nie są odpowiednio escapowane. Problem został naprawiony w wersji 3.26.0.
- CVE-2026-46635Średnie
Podatność w silniku szablonów Twig przed wersją 3.26.0 pozwala na odczytanie właściwości publicznych i magicznych obiektów PHP za pomocą filtra column, omijając mechanizmy sandboxa. Umożliwia to autorowi szablonu z dostępem do filtra column odczytanie właściwości spoza listy dozwolonych.
- CVE-2026-46629Średnie
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.
- CVE-2026-46628Średnie
W bibliotece Twig dla PHP wykryto podatność polegającą na tym, że przestarzały filtr spaceless jest rejestrowany jako bezpieczny dla HTML. Powoduje to, że automatyczne kodowanie (autoescaping) Twiga nie koduje znaczników kontrolowanych przez atakującego, gdy filtr spaceless jest stosowany do niezaufanych danych wejściowych. Problem został naprawiony w wersji 3.26.0.
- CVE-2026-46627Średnie
Podatność w bibliotece Twig dla PHP (przed wersją 3.26.0) pozwala niezaufanym szablonom na wyczerpanie zasobów CPU, pamięci lub czasu wykonania, nawet przy najbardziej restrykcyjnej liście dozwolonych funkcji. Problem został rozwiązany w wersji 3.26.0 poprzez udokumentowanie, że sandbox nie chroni przed wyczerpaniem zasobów.
- CVE-2026-24425Wysokie
Twig w wersjach 2.16.x oraz 3.9.0 do 3.25.x zawiera lukę umożliwiającą ominięcie sandboksa podczas korzystania z SourcePolicyInterface. Atakujący z możliwością renderowania szablonów mogą przekazać dowolne wywołania PHP do filtrów sort, filter, map i reduce, co pozwala na ominięcie ograniczeń sandboksa i wykonanie dowolnego kodu.

