Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Pimcore admin
-
DeliveryCraft class definition with malicious index_columns
-
ExploitImport or save DataObject class definition
-
ExecutionPayload concatenated into ALTER TABLE ADD INDEX
-
PersistDoctrine DBAL executes injected SQL
-
ImpactDatabase read/modification
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated administrative user (PR:H) with the specific capability to import or save DataObject class definitions in the Pimcore backend; the malicious payload must be placed in the compositeIndices metadata (most reliably compositeIndices.index_columns, alternatively index_key) of the imported class-definition JSON. Exploitation is triggered when Pimcore rebuilds composite indices and interpolates the value into ALTER TABLE ADD/DROP INDEX DDL. Limiting factors: it is not remote-unauthenticated - an attacker without admin/class-definition rights cannot reach the vulnerable flow; no user interaction is needed beyond the attacker's own import/save action; affected only on unpatched builds (<= 12.3.6, <= 11.5.16, or 2026.1.0-2026.1.2). |
| Impact | This is a real but access-gated issue, not a mass-exploitation threat. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:L/VA:L) and score 7.0 hinge on PR:H - the attacker must already hold administrative rights to import/save class definitions, which sharply narrows the attacker population. Corroborating low-urgency signals: EPSS is 0.01% (2nd percentile), the issue is not in CISA KEV, and CISA SSVC scores Exploitation: none, Automatable: no, Technical Impact: partial. No public exploit code has been identified. The main risk is post-authentication privilege abuse: a compromised or malicious admin (or a supply-chain/import-of-untrusted-class-definition scenario) turning DDL configuration into arbitrary SQL, giving full read of the database (VC:H) and limited write/availability impact. Treat as a standard-priority patch, prioritized higher where admin accounts are broadly delegated or class definitions are imported from untrusted sources. |
| Exploit ScenarioDerived | An attacker who has obtained an administrative Pimcore session (or a rogue insider) crafts a DataObject class-definition JSON where compositeIndices.index_columns contains an injected ALTER TABLE subclause, then imports or saves it. When Pimcore rebuilds the composite indices it concatenates the value into an ADD INDEX statement executed via Doctrine DBAL, running the attacker's SQL against the object tables. No public POC is available, but network attack vector and low complexity (AV:N/AC:L) mean the only real barrier is the required admin privilege. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 24, 2026
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.
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
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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.
Know when Pimcore gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
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
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
2DescriptionCVE.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.
Executive ViewAI
A SQL injection vulnerability in Pimcore's DataObject configuration handling (CVE-2026-5394) allows authenticated administrative users to escalate their access into arbitrary database command execution. This directly threatens organizations' data integrity and confidentiality, as admin-level accounts can execute unrestricted SQL queries to manipulate or exfiltrate sensitive information. Organizations using Pimcore for sensitive or regulated data should prioritize immediate remediation.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
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
EUVD-2026-25909
GHSA-c8g3-x47w-8q7p
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB