Live › vulnerability › CVE-2026-114624
Go to dashboardbaserCMS stores widget-area values that are later read back with unserialize() and no class restrictions. A stored serialized payload can reach proc_open() through composer or MCP SDK gadget chains and run commands as the web-server user each time the page renders.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 21:57 UTC. All times on this page are UTC.
Sites running baserCMS 5.0.0 through 5.3.x before 5.3.2, or 5.4.0 through 5.4.x before 5.4.2, are exposed. Exploitation requires an administrator or an attacker with widget-write access, such as one obtained through chained XSS, to store the payload first, but the trigger is then ordinary unauthenticated page requests. Sites already on or or later can skip it.
5.3.25.4.2No product ranges from the sources yet.
5.0.0 to before 5.3.2 and 5.4.0 to before 5.4.2.composer/composer and logiscape/mcp-sdk-php in composer.lock, since the demonstrated gadget chains use them.5.3.2 on the 5.3 line or 5.4.2 on the 5.4 line.Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
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.
This page as .md · .json · in your agent: get_signal("CVE-2026-114624")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.