Katalog CVE

CVE-2026-114624

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.61%

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

Streszczenie

W baserCMS encja widget-area serializuje widgety tylko wtedy, gdy przesłana wartość jest tablicą, co pozwala na zapisanie ciągu znaków przesłanego przez administracyjne API JSON bez zmian. Odczyt encji, w tym renderowanie front-endu i odpowiedzi API, deserializuje zapisaną wartość za pomocą unserialize() bez ograniczenia allowed_classes, akceptując zarówno surowe, jak i base64-zakodowane dane serializowane. Administrator lub atakujący, który uzyska możliwość zapisu widgetów poprzez inną podatność, taką jak łańcuch XSS, może umieścić graf obiektów, który następnie uruchamia się przy nieuwierzytelnionych żądaniach stron.

Ocena ryzyka

Możliwe jest wykonanie dowolnych poleceń jako użytkownik serwera WWW poprzez łańcuchy gadżetów deserializacji, co prowadzi do pełnego przejęcia serwera. Złośliwy ładunek może być wykonany wielokrotnie, dopóki wiersz bazy danych nie zostanie naprawiony.

Rekomendacja

Zaktualizuj baserCMS do wersji 5.3.2 lub 5.4.2, które naprawiają podatność. Ogranicz możliwość zapisu widgetów do zaufanych administratorów i regularnie przeglądaj zawartość bazy danych pod kątem podejrzanych serializowanych danych.

Inne podatności w baserCMS

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

baserCMS is a website development framework. In versions 5.0.0 before 5.3.2 and 5.4.0 before 5.4.2, the widget-area entity serializes widgets only when the submitted value is an array, allowing a string submitted through the admin JSON API to be stored unchanged. Entity reads, including front-end rendering and API responses, deserialize the stored value with unserialize() without an allowed_classes restriction, accepting both raw and base64-encoded serialized data. An administrator, or an attacker who obtains widget-write capability through a separate vulnerability such as chained XSS, can plant an object graph that subsequently triggers on unauthenticated page requests. Two demonstrated gadget chains in the default dependency set use composer/composer ProcessExecutor::startJob() with Process::fromShellCommandline(), or logiscape/mcp-sdk-php StdioTransport::connect() with StdioServerParameters, to reach proc_open() and execute commands as the web-server user. Deserialization bypasses constructor-based readonly safeguards, and the stored payload can execute repeatedly until the database row is repaired. Unauthenticated page access is a trigger after privileged payload storage, not an unauthenticated means of initially planting the payload. This issue has been patched in versions 5.3.2 and 5.4.2.

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