CVE-2026-46635
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko polega na wycieku poufnych danych z obiektów PHP, które nie są objęte ochroną sandboxa, co może prowadzić do ujawnienia informacji wrażliwych w aplikacji.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę Twig do wersji 3.26.0 lub nowszej, która zawiera poprawkę eliminującą tę podatność.
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, the column filter passes object arrays to PHP array_column(), which reads public and magic properties without reaching CoreExtension::getAttribute() or SandboxExtension::checkPropertyAllowed(), allowing an untrusted template author with column in allowedFilters to read properties that are not in the sandbox allowlist. This issue is fixed in version 3.26.0.

