Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Reachable over the network but only by an admin with class-definition import/save rights (PR:H); SQLi yields full DB read (C:H) with limited DDL-driven write/availability impact (I:L/A:L), no scope change.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
5DescriptionCVE.org
An authenticated administrative user who can import or save DataObject class definitions can inject attacker-controlled composite index metadata and trigger unintended SQL execution in the backend.
This issue affects pimcore: 12.3.3.
AnalysisAI
SQL injection in Pimcore's DataObject composite index handling lets an authenticated administrative user (PR:H) escalate configuration-management rights into arbitrary SQL execution by importing or saving a crafted class definition. The vulnerable flow accepts compositeIndices from imported JSON and concatenates index_key and, more reliably, index_columns verbatim into ALTER TABLE ... DROP/ADD INDEX statements run through Doctrine DBAL. There is no public exploit identified at time of analysis and EPSS is 0.01%, but the GHSA advisory and PR #19108 fully document the root cause, so exploitation is well understood.
Technical ContextAI
Pimcore is an open-source PHP data/experience management platform (PIM/DAM/CMS) built on Symfony and Doctrine DBAL. The root cause is CWE-89 (SQL injection): Service::importClassDefinitionFromJson() ingests compositeIndices from user-supplied JSON, ClassDefinition::setCompositeIndices() stores it without an allowlist (only rewriting ManyToOne relations to __id/__type, which is not a security control), and CompositeIndexTrait::updateCompositeIndices() interpolates the index key and columns directly into 'ALTER TABLE table DROP INDEX ...' and 'ADD INDEX key (columns)' DDL. Because index_columns is placed verbatim inside the ADD INDEX (...) clause, an attacker can append additional ALTER TABLE subclauses without needing stacked-query support. The fix (commit 6df625f) introduces assertValidIdentifier() enforcing /^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/ and switches to db->quoteIdentifier() for the table, key, and each column. CPE cpe:2.3:a:pimcore:pimcore identifies the single affected product.
RemediationAI
Vendor-released patch: upgrade to Pimcore 12.3.7 (12.x), 11.5.17 (11.x), or 2026.1.3 (calendar line) - via composer require pimcore/pimcore to the fixed release. The fix (PR https://github.com/pimcore/pimcore/pull/19108, commit https://github.com/pimcore/pimcore/commit/6df625ff74015dc11f4bbe76170ce45bbd5dd61d) adds strict identifier validation and quoteIdentifier() calls, so no functional class-definition behavior is lost. Until patching, the practical compensating controls are to restrict which accounts hold the class-definition import/save permission and avoid importing DataObject class definitions from untrusted sources, since exploitation requires that administrative capability; monitor the database DDL/query logs for anomalous ALTER TABLE statements against object tables. There is no configuration flag to disable the feature cleanly without breaking legitimate class management, so tightening admin authorization and import provenance is the main trade-off-bearing mitigation. Advisory: https://github.com/pimcore/pimcore/security/advisories/GHSA-r2f4-ff2p-xc64
An issue was discovered in Pimcore before 5.7.1. Rated high severity (CVSS 8.8), this vulnerability is remotely exploita
Pimcore's Admin Classic Bundle provides a Backend UI for Pimcore. Rated critical severity (CVSS 9.3), this vulnerability
pimcore is vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). Rated cri
Blind SQL injection in Pimcore's Admin Search Find API allows authenticated attackers to extract database information th
Pimcore's Admin Classic Bundle provides a backend user interface for Pimcore. Rated high severity (CVSS 8.8), this vulne
Pimcore's Admin Classic Bundle provides a backend user interface for Pimcore. Rated high severity (CVSS 8.8), this vulne
Pimcore is an Open Source Data & Experience Management Platform. Rated high severity (CVSS 8.8), this vulnerability is r
Path Traversal: '\..\filename' in GitHub repository pimcore/pimcore prior to 10.5.22. Rated high severity (CVSS 8.8), th
Privilege Defined With Unsafe Actions in GitHub repository pimcore/pimcore prior to 10.5.23. Rated high severity (CVSS 8
SQL Injection in GitHub repository pimcore/pimcore prior to 10.5.21. Rated high severity (CVSS 8.8), this vulnerability
SQL Injection in GitHub repository pimcore/pimcore prior to 10.5.19. Rated high severity (CVSS 8.8), this vulnerability
An improper SameSite Attribute vulnerability in pimCore v10.5.15 allows attackers to execute arbitrary code. Rated high
Same weakness CWE-89 – SQL Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-25909
GHSA-c8g3-x47w-8q7p