Direct naar de inhoud
⚡ Kritieke cyberalerts voor jouw sector & systemen — direct in je inbox. Aanmelden →
CVE's Videos Dagbriefing

← Terug naar CVE-database

CVE-2026-114624

HIGH · 7.2 CVSS Gepubliceerd: CWE-502

Beschrijving NL

baserCMS is een framework voor websiteontwikkeling. In versies 5.0.0 vóór 5.3.2 en 5.4.0 vóór 5.4.2 serialiseert de widget-area-entiteit widgets alleen wanneer de ingediende waarde een array is. Hierdoor kan een string die via de admin JSON API wordt verzonden, ongewijzigd worden opgeslagen. Entiteitslezingen, inclusief front-end rendering en API-reacties, deserialiseren de opgeslagen waarde met unserialize() zonder een allowed_classes-beperking, waarbij zowel onbewerkte als base64-gecodeerde geserialiseerde data worden geaccepteerd. Een beheerder, of een aanvaller die via een andere kwetsbaarheid zoals een gekoppelde XSS-aanval schrijfrechten voor widgets verkrijgt, kan een objectgrafiek plaatsen die vervolgens wordt geactiveerd bij niet-geauthenticeerde paginaverzoeken. Twee gedemonstreerde gadgetketens in de standaardafhankelijkheidsset gebruiken composer/composer ProcessExecutor::startJob() met Process::fromShellCommandline(), of logiscape/mcp-sdk-php StdioTransport::connect() met StdioServerParameters, om proc_open() te bereiken en commando's uit te voeren als de webservergebruiker. Deserialisatie omzeilt op constructors gebaseerde alleen-lezenbeveiligingen, en de opgeslagen payload kan herhaaldelijk worden uitgevoerd totdat de database-rij is hersteld. Toegang tot een pagina zonder authenticatie wordt geactiveerd nadat een geprivilegieerde payload is opgeslagen, en is geen manier om de payload initieel te plaatsen zonder authenticatie. Dit probleem is verholpen in versie 5.3.2 en 5.4.2.

Origineel (Engels) tonen

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.

References