Katalog CVE

CVE-2026-115938

WysokieCVSS 8.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.37%

Percentyl 31 - wyżej niż 31% wszystkich znanych CVE

Streszczenie

Craft CMS pozwala każdemu uwierzytelnionemu użytkownikowi panelu sterowania przesłać warunek wyszukiwania elementów, którego selektor jest oceniany jako szablon obiektu Twig w piaskownicy; filtr kolumn deleguje wyszukiwanie właściwości do Yii ArrayHelper poza SecurityPolicy Twig, co pozwala obejść piaskownicę i odzyskać GeneralConfig::securityKey, a następnie sfałszować podpisane parametry i wywołać natywne funkcje PHP.

Ocena ryzyka

Uwierzytelniony użytkownik panelu może odzyskać klucz bezpieczeństwa i sfałszować podpisane żądania, co prowadzi do zdalnego wykonania kodu w kontekście serwera.

Rekomendacja

Zaktualizuj Craft CMS do wersji zawierającej poprawkę oraz ogranicz dostęp do panelu sterowania wyłącznie do zaufanych użytkowników.

Inne podatności w Craft CMS

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

Craft CMS allows any authenticated control panel user to submit an element-search condition whose element selector is evaluated as a sandboxed Twig object template. Craft’s allowed column filter delegates property lookup to Yii ArrayHelper, outside Twig’s SecurityPolicy. Repeated single-segment lookups therefore bypass the sandbox’s empty property/method allowlists. The vulnerable condition value is ultimately cast to an integer. That does not protect the secret: the template can return author ID 1 when a guessed key character is correct and an impossible ID otherwise. The JSON endpoint returns entries for the first case and an empty array for the second, forming a stable remote character oracle. After recovering GeneralConfig::securityKey, the same user can compute Craft’s generic HMAC wire format offline. Signed parameters such as redirect are then accepted and passed to unsandboxed View::renderObjectTemplate(), where Twig’s string-callable form can invoke native PHP callables. The regression proof uses the harmless substr() callback and observes abcdef becoming cdef; it does not execute an OS command.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS