Skip to main content

Pimcore CVE-2026-109392

| EUVDEUVD-2026-97490 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-12 VulnCheck GHSA-w844-4xmf-w7mw
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-priv backend user
  2. Delivery
    Store XSS payload in ExternalImage URL field
  3. Exploit
    Victim admin opens version preview/diff
  4. Execution
    JavaScript executes in admin origin
  5. Impact
    Hijack admin session actions

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated Pimcore backend account that holds data object edit permission (PR:L), which the attacker uses to write an attribute-breaking payload into an ExternalImage class-definition field where the stored URL is rendered unescaped. The payload is dormant until a second user opens the affected object's version preview or version diff view (the UI:P/passive-interaction requirement), meaning no self-triggering and no fully unauthenticated path exists. Limiting factors: the attacker needs edit rights on data objects using an ExternalImage field, the victim must independently navigate to the preview/diff view, and impact is confined to the admin backend origin - there is no anonymous, default-configuration remote exploitation.

Impact

This is a stored XSS (CWE-79) in Pimcore through 2026.3.1 that warrants moderate, not urgent, prioritization. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N) and its 5.1 score point to a network-reachable but privilege- and interaction-gated flaw: the attacker must already be an authenticated backend user holding data object edit permission (PR:L), and a second victim user must passively open a version preview or diff view (UI:P) for the payload to fire. Publicly available exploit code exists (write-up on hackmd.io plus a VulnCheck advisory), which raises practical likelihood and lowers the skill barrier, but there is no CISA KEV listing and no EPSS score in the provided data, so there is no evidence of active or widespread exploitation - treat the POC as proof of feasibility, not of in-the-wild use. The impact is genuine but bounded: execution occurs in the admin origin, enabling session-context actions against other operators, yet all impact sub-metrics are rated Low. The main contrast in signals is high exploit maturity (public POC) against low prerequisites-adjusted reach (requires an authenticated insider or compromised low-priv account plus victim interaction), making this primarily an insider/privilege-escalation-within-backend concern rather than an internet-facing mass-exploitation risk. No key data is internally conflicting; the chief gap is the absence of EPSS/KEV telemetry to gauge real-world activity.

Exploit ScenarioDerived

A low-privileged Pimcore backend user with data object edit permission enters an attribute-breaking payload into an ExternalImage field's URL so that the stored, unescaped value injects script markup. When a higher-privileged administrator later opens that object's version preview or diff view, the JavaScript executes in the admin origin, letting the attacker act in the victim's authenticated backend session. Publicly available exploit code (hackmd.io write-up and VulnCheck advisory) demonstrates the attribute-breaking technique, and the network attack vector with low complexity makes it reliably reproducible once the attacker has edit rights.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 12, 2026

Stored cross-site scripting in Pimcore through 2026.3.1 lets an authenticated backend user who holds data object edit permission plant an attribute-breaking payload in an ExternalImage class-definition field, and that JavaScript then runs in the admin origin when another user opens the affected object's version preview or version diff view. The injected script stays dormant until a second user navigates to the preview/diff screen, so exploitation is not self-triggering and there is no anonymous or default-configuration remote path; publicly available exploit code exists and a technical write-up plus a VulnCheck advisory are referenced. Impact is confined to the admin backend origin and yields limited confidentiality and integrity effects, so this warrants moderate rather than urgent prioritization and should be scheduled with other backend XSS hardening work.

RemediationAI

No vendor-released patch was identified in the available intelligence at time of analysis; the published references point to the vulnerable source locations rather than a fixed release, so track the Pimcore repository (https://github.com/pimcore/pimcore) and the admin-ui-classic-bundle project for an updated version, and watch the VulnCheck advisory (https://www.vulncheck.com/advisories/pimcore-through-2026.3.1-stored-xss-via-externalimage-field-version-preview) for patch guidance. Until a fix ships, the most effective compensating controls are: (1) add output encoding or URL scheme validation for ExternalImage values in the preview_version.html.twig render path and the ExternalImage field model - this is a code change and must be maintained across upgrades; (2) tighten Pimcore backend permissions so that data object edit rights are limited to trusted staff and class-definition editing is restricted even further, which reduces the pool of users who can plant a payload but does not eliminate the flaw for existing editors; (3) apply a strict Content-Security-Policy to the admin origin to block inline script execution, accepting that the Pimcore admin UI may rely on inline handlers and require allowlisting or breakage; and (4) if version preview/diff is not operationally required, restrict access to those routes or the underlying version history feature, with the trade-off that auditors and editors lose rollback and change-diff visibility. Treat the publicly available exploit write-up at https://hackmd.io/@1ExmmukzRMWN7B4gQ4W-4Q/rJCbgCKjMe as actionable proof-of-concept guidance when validating any hardening you apply.

Affected VersionsENISA

pimcore 0 ≤2026.3.1

Affected Packages

euvd pimcore no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-79 (improper neutralization of input during web page generation) in Pimcore's ExternalImage data-object field type, which stores a URL supplied by an editor. That stored value is persisted in the class-definition/field data and later rendered without output encoding in the version preview template (admin-ui-classic-bundle 2.3, templates/admin/data_object/data_object/preview_version.html.twig around line 198), with the vulnerable field handling in pimcore/pimcore models/DataObject/ClassDefinition/Data/ExternalImage.php lines 169-203. Because the URL is placed into an HTML attribute context without escaping, an attacker with data object edit rights can craft an attribute-breaking value that closes the attribute and injects a script or event handler. The payload does not execute on save; it executes in the Pimcore admin origin only when a version preview or version diff view renders the stored field, which is a stored/persistent XSS pattern requiring passive interaction from a second privileged user. The CPE cpe:2.3:a:pimcore:pimcore:*:*:*:*:*:*:*:* indicates the core Pimcore product line up to and including 2026.3.1 is affected, with the classic admin UI bundle referenced as the rendering component; the assessed CVSS:3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) confirms scope change into the admin origin but low confidentiality and integrity impact and no availability impact.

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

Vendor (VulnCheck) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

Authenticated edit permission gives PR:L, the victim must open a preview/diff so UI:R, and injected script executing in the admin origin crosses a security authority giving S:C with Low C/I and no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

Pimcore through 2026.3.1 contains a stored cross-site scripting vulnerability that allows authenticated backend users to inject scripts by storing unescaped URLs in ExternalImage fields. Attackers with data object edit permission can store attribute-breaking payloads that execute JavaScript in the admin origin when other users open version preview or diff views.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular open-source PHP CMS/PIM/DAM, common but not ubiquitous enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2019-10867 HIGH POC
8.8 Apr 04

An issue was discovered in Pimcore before 5.7.1. Rated high severity (CVSS 8.8), this vulnerability is remotely exploita

CVE-2024-25625 CRITICAL POC
9.3 Feb 19

Pimcore's Admin Classic Bundle provides a Backend UI for Pimcore. Rated critical severity (CVSS 9.3), this vulnerability

CVE-2021-4139 CRITICAL POC
9.0 Dec 21

pimcore is vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). Rated cri

CVE-2026-23492 HIGH POC
8.8 Jan 14

Blind SQL injection in Pimcore's Admin Search Find API allows authenticated attackers to extract database information th

CVE-2024-23646 HIGH POC
8.8 Jan 24

Pimcore's Admin Classic Bundle provides a backend user interface for Pimcore. Rated high severity (CVSS 8.8), this vulne

CVE-2024-23648 HIGH POC
8.8 Jan 24

Pimcore's Admin Classic Bundle provides a backend user interface for Pimcore. Rated high severity (CVSS 8.8), this vulne

CVE-2023-47637 HIGH POC
8.8 Nov 15

Pimcore is an Open Source Data & Experience Management Platform. Rated high severity (CVSS 8.8), this vulnerability is r

CVE-2023-2984 HIGH POC
8.8 May 30

Path Traversal: '\..\filename' in GitHub repository pimcore/pimcore prior to 10.5.22. Rated high severity (CVSS 8.8), th

CVE-2023-2983 HIGH POC
8.8 May 30

Privilege Defined With Unsafe Actions in GitHub repository pimcore/pimcore prior to 10.5.23. Rated high severity (CVSS 8

CVE-2023-2338 HIGH POC
8.8 Apr 27

SQL Injection in GitHub repository pimcore/pimcore prior to 10.5.21. Rated high severity (CVSS 8.8), this vulnerability

CVE-2023-1578 HIGH POC
8.8 Mar 22

SQL Injection in GitHub repository pimcore/pimcore prior to 10.5.19. Rated high severity (CVSS 8.8), this vulnerability

CVE-2023-25240 HIGH POC
8.8 Feb 13

An improper SameSite Attribute vulnerability in pimCore v10.5.15 allows attackers to execute arbitrary code. Rated high

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy