CVE-2026-82531
WysokieCVSS 8.1Streszczenie
Smarty przed wersją 4.5.8 i 5.x przed 5.8.5 zawiera podatność na wstrzyknięcie kodu, gdzie nocache_hash nie jest przywracany podczas dziedziczenia szablonów extends:/multi-component, pozostając null. Atakujący może dostarczyć dane z fałszywym znacznikiem SmartyNocache, który jest kopiowany do pliku cache PHP, umożliwiając wykonanie dowolnego kodu PHP.
Ocena ryzyka
Ryzyko obejmuje zdalne wykonanie kodu na serwerze, co może prowadzić do pełnej kompromitacji aplikacji i danych.
Rekomendacja
Zaktualizuj Smarty do wersji 4.5.8 lub 5.8.5 (lub nowszej), która zawiera poprawkę. Unikaj przypisywania danych od niezaufanych źródeł do szablonów.
Inne podatności w Smarty
Zobacz wszystkie- CVE-2014-8350Wysokie
Smarty w wersjach przed 3.1.21 pozwala zdalnym atakującym na obejście ograniczeń trybu zabezpieczonego i wykonanie dowolnego kodu PHP, co zostało zademonstrowane przez użycie "{literal}<{/literal}script language=php>" w szablonie.
- CVE-2026-62993Średnie
Smarty to silnik szablonów dla PHP. Przed wersjami 4.5.7 i 5.8.2, obsługa {fetch} używała Security::isTrustedUri() tylko do walidacji początkowego adresu URL, a PHP domyślnie podążał za przekierowaniami HTTP. Atakujący z otwartym przekierowaniem na zaufanym hoście mógł przekierować żądanie do wewnętrznego punktu końcowego, omijając listę dozwolonych URI i wykonując SSRF.
- CVE-2026-62996Średnie
Smarty to silnik szablonów dla PHP. Od wersji 5.0.0 do 5.8.4 obsługa nazw zasobów stream: nie ograniczała odpowiednio, które wrappery strumieni PHP i łańcuchy filtrów mogą być używane w szablonie, co pozwalało na użycie nazwy zasobu opakowanej w php://filter do odczytu zawartości dowolnych lokalnych plików dostępnych dla procesu PHP. Atakujący, który może tworzyć lub wpływać na referencję zasobu w szablonie, może wykorzystać to do ujawnienia wrażliwych plików poza zamierzonym zakresem. Problem naprawiono w wersji 5.8.4.
- CVE-2026-62992Średnie
Smarty to silnik szablonów dla PHP. Przed wersją 5.8.2 (oraz 4.5.7 w linii 4.x) funkcja Security::_checkDir() nie w pełni rozwiązuje dowiązania symboliczne przed weryfikacją, czy żądana ścieżka znajduje się w skonfigurowanym bezpiecznym katalogu. Atakujący, który może umieścić lub odwołać się do dowiązania symbolicznego w katalogu uznawanym przez Smarty za zaufany (np. katalog szablonów lub konfiguracji), może wskazać poza zamierzony bezpieczny katalog, omijając kontrolę i odczytując dowolne pliki dostępne dla procesu PHP. Problem naprawiono w wersjach 5.8.2 i 4.5.7.
- CVE-2026-50745Średnie
W skrypcie stats-video.php brakuje sanityzacji danych wejściowych użytkownika. Adresy URL do tego skryptu nie były konstruowane zgodnie z najlepszymi praktykami, a wynik działania niestandardowej funkcji pomocniczej Smarty 'url' nie był odpowiednio kodowany ani sanityzowany, co pozwala na odbicie danych dostarczonych przez użytkownika bez ich escapowania.
Oryginalny opis (angielski, źródło NVD)
Smarty before 4.5.8 and 5.x before 5.8.5 contains a code injection vulnerability where the top-level nocache_hash is never restored during extends:/multi-component template inheritance, leaving it null. Attackers can supply assigned data containing a forged SmartyNocache marker that is copied verbatim into the regenerated PHP cache file, executing arbitrary PHP on include for remote code execution.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

