Craft CMS implementuje bloklistę niebezpiecznych funkcji PHP wywoływanych przez szablony Twig, jednak lista ta jest niekompletna. Umożliwia to uwierzytelnionym użytkownikom z odpowiednimi uprawnieniami wykonanie dowolnego kodu, odczyt plików, SSRF lub SSTI.
▸ Pokaż oryginał (EN)
Craft is a content management system (CMS). Prior to 5.9.0-beta.1 and 4.17.0-beta.1, Craft CMS implements a blocklist to prevent potentially dangerous PHP functions from being called via Twig non-Closure arrow functions. In order to be able to successfully execute this attack, you need to either have allowAdminChanges enabled on production, or a compromised admin account, or an account with access to the System Messages utility. Several PHP functions are not included in the blocklist, which could allow malicious actors with the required permissions to execute various types of payloads, including RCEs, arbitrary file reads, SSRFs, and SSTIs. This vulnerability is fixed in 5.9.0-beta.1 and 4.17.0-beta.1.
Craft CMS stosuje mechanizm bloklisty (blocklist) do filtrowania potencjalnie niebezpiecznych funkcji PHP, które mogą być wywołane za pośrednictwem tzw. non-Closure arrow functions w silniku szablonów Twig. Luka polega na tym, że blokada jest niekompletna — część funkcji PHP nie została uwzględniona na liście zabronionych. Atakujący z dostępem do panelu administracyjnego (np. z włączoną opcją allowAdminChanges w środowisku produkcyjnym, przejętym kontem administratora lub dostępem do narzędzia System Messages) może skonstruować odpowiedni payload w szablonie Twig i wywołać pominięte funkcje PHP. Podatność dotyczy zarówno gałęzi 5.x, jak i 4.x systemu Craft CMS.
Atakujący z wymaganymi uprawnieniami może wykonać dowolny kod po stronie serwera (RCE), odczytać dowolne pliki systemu, przeprowadzić atak SSRF lub SSTI, co w efekcie może prowadzić do pełnego przejęcia kontroli nad systemem i danymi.
Należy zaktualizować Craft CMS do wersji 5.9.0-beta.1 lub 4.17.0-beta.1. Dodatkowo, jeśli nie jest to konieczne, zaleca się wyłączenie opcji allowAdminChanges w środowiskach produkcyjnych oraz ograniczenie liczby kont z dostępem do narzędzia System Messages i panelu administracyjnego.
Craft CMS w wersjach poprzedzających 5.9.0-beta.1 oraz 4.17.0-beta.1
Atak wymaga posiadania konta z podwyższonymi uprawnieniami (administrator lub dostęp do System Messages) albo włączonej opcji allowAdminChanges w środowisku produkcyjnym. Szczegóły techniczne oraz patch dostępne są w repozytorium GitHub projektu (pull request #18208 oraz advisory GHSA-5fvc-7894-ghp4).
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/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:XCraftcms Craft Cms
APPCraftcms4.0.05.0.0< 4.17.0< 5.9.0
Powiązane podatności
Krytyczny RCE w Craft CMS — zdalne wykonanie kodu bez uwierzytelnienia
RCE w Craft CMS przez nieprawidłową konfigurację register_argc_argv
Craft CMS: RCE przez SSTI w polach szablonów Twig
SQL injection w Craft CMS przez endpoint GraphQL API
Craft CMS is a platform for creating digital experiences. This is a high-impact, low-complexity attack vector....