ZeroHour

CVE-2026-55634

large

Authenticated PHP Code Injection and SQL Injection in Pimcore Studio Class-Definition Import

CVSS 3.1
9.9 critical
EPSS
<1%p38
Published
()
Modified
AI analysis

Pimcore versions before 11.5.19, 12.3.10, and 2026.1.6 fail to validate DataObject field names against an identifier allowlist in the class-definition import endpoint /pimcore-studio/api/class/definition/configuration-view/detail/{id}/import, because the central setName() validation did not reject characters such as semicolons, braces, backticks, and spaces. An authenticated user holding the objects permission can submit a crafted field name that is injected without sanitization into generated PHP class files under var/classes/DataObject/ and into ALTER TABLE identifiers, mapping to CWE-94 (code injection) and CWE-89 (SQL injection). The injected PHP executes whenever an object of that class is instantiated, giving the attacker server-side remote code execution as the web application, while injected identifier text can alter or manipulate schema-changing SQL statements. Any Pimcore deployment running an affected release line where users with the objects permission can reach the Pimcore Studio API is affected, which is a scope-changing issue with high impact on confidentiality, integrity, and availability. Exploitation has not been observed: there is no known public proof-of-concept, the CVE is not in CISA's KEV catalog, and EPSS puts the 30-day exploitation probability at only about 0.4%.

What to do: Upgrade to Pimcore 11.5.19, 12.3.10, or 2026.1.6 depending on your release line. Until patched, restrict access to the Pimcore Studio API and limit the users assigned the objects permission, since exploitation requires such an account. After upgrading, audit existing class definitions and generated files under var/classes/DataObject/ for field names containing semicolons, braces, backticks, spaces, or other non-identifier characters, as previously injected definitions persist and can still trigger execution.

Affected
Pimcore (11.x branch)prior to 11.5.19
Pimcore (12.x branch)prior to 12.3.10
Pimcore (2026.1 branch)prior to 2026.1.6
Estimated exposure
largeon the order of tens of thousands of Pimcore installations (roughly 10,000-100,000 deployments on affected branches), with only those exposing the Studio API… — Pimcore is a widely deployed open-source data and experience management platform with cumulative Packagist downloads of pimcore/pimcore in the millions, implying an installed base in the tens of thousands, and no public internet-scan…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Pimcore is an Open Source Data & Experience Management Platform. Prior to 11.5.19, 12.3.10, and 2026.1.6, the class-definition import endpoint /pimcore-studio/api/class/definition/configuration-view/detail/{id}/import accepts a DataObject field name that is emitted without an identifier allowlist by lib/DataObject/ClassBuilder/FieldDefinitionPropertiesBuilder.php into generated PHP properties and by models/DataObject/ClassDefinition/Helper/Dao.php into ALTER TABLE identifiers. An authenticated user with the objects permission can inject PHP syntax into the generated DataObject class, causing attacker-controlled code in generated var/classes/DataObject/.php files to run when an object of that class is instantiated, and can also inject SQL identifier content into schema-changing statements. The central models/DataObject/ClassDefinition/Data.php::setName() validation did not reject semicolons, braces, backticks, spaces, or other non-identifier characters. This issue is fixed in versions 11.5.19, 12.3.10, and 2026.1.6.

Weakness
CWE-89, CWE-94
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.