Skip to main content

Ghost CMS EUVDEUVD-2026-91422

| CVE-2026-104411 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-02 VulnCheck GHSA-6v5j-39pg-pv7v
8.5
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as staff user
  2. Delivery
    Upload script-bearing file
  3. Exploit
    File served with executable content-type
  4. Execution
    Victim admin loads payload
  5. Impact
    Hijack admin session

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

Requires an authenticated Ghost staff account (PR:L) on an instance running the default local storage adapter, which serves uploaded files with extension-derived content types from the site's own origin. Exploitation further requires a second staff user (typically higher-privileged) to view the malicious upload within the admin context (UI:P). Limiting factors: the attacker must already possess staff credentials, the instance must use default local storage (object-storage/CDN adapters on a separate origin mitigate it), and successful session compromise depends on a victim staff user loading the payload - so single-operator or non-default-storage deployments face substantially reduced real-world risk.

Impact

This is a credible but privilege-gated threat rather than a drive-by critical. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H) scores 8.5 (High) and is internally consistent with the description: network-reachable, low complexity, but requiring an authenticated staff account (PR:L) and passive victim interaction (UI:P). The real-world risk is bounded by the PR:L prerequisite - an attacker must already hold a staff/author account, so this is primarily a privilege-escalation/lateral-movement primitive among staff (a lower-privileged author compromising an owner/admin session) rather than an unauthenticated internet-facing RCE. Exploitation signals are weak-to-absent: there is no CISA KEV listing and no public POC referenced, so this is not confirmed exploited. No EPSS score was provided in the input, so probabilistic exploitation likelihood cannot be stated - this is a notable data gap. A further limiter is that the flaw only manifests on the default local storage adapter; deployments fronting uploads with an object-storage/CDN adapter on a separate origin are not affected in the same way. Net: a real priority for multi-author Ghost instances where staff accounts are loosely trusted or self-registration is broad, but materially lower urgency than the 8.5 implies for single-admin or tightly-controlled installations.

Exploit ScenarioDerived

A low-privileged staff user (e.g., an author) uploads a file whose extension causes Ghost's default local storage adapter to serve it with a script-executable content type on the site's own domain. When a higher-privileged staff user (owner/admin) later views that content in the admin context, the attacker's script runs in their authenticated session and hijacks it. No public exploit code is identified at time of analysis, but the technique is straightforward given a staff account.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 02, 2026

Stored cross-site scripting in Ghost CMS (6.22.1 through versions before 6.64.0) allows an authenticated staff user to upload a file that the default local storage adapter serves back from the site's own origin with an extension-derived content type, so a second staff member who views the upload in the admin context can have their session compromised. The attack is privilege-gated rather than a drive-by critical: it requires an existing staff account (PR:L), the default local storage adapter (instances using object-storage or CDN adapters on a separate origin are materially less exposed), and interaction by a victim staff user, typically one with higher privileges (UI:P). Vendor patch is available; no public exploit code has been identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to Ghost 6.64.0, the first release outside the affected range, as documented in the vendor advisory at https://github.com/TryGhost/Ghost/security/advisories/GHSA-gfjp-2p8f-94qv (patch availability confirmed; the input data does not expose a backport list, so confirm coverage for any LTS branch in use). If immediate upgrade is not possible, the highest-value compensating control is to stop serving uploads from the admin origin - migrate media to an object-storage or CDN adapter on a separate domain, accepting the operational cost of reconfiguring storage and re-pointing existing asset URLs. As a secondary measure, configure the reverse proxy or web server to emit Content-Disposition: attachment and X-Content-Type-Options: nosniff for the uploads path, which neutralizes most script-bearing file types but can break legitimate inline image or video embedding and must be validated against existing content. A restrictive Content-Security-Policy on the admin origin (script-src limited to trusted host sources, no 'unsafe-inline' or data: sources) reduces payload execution but risks breaking admin UI functionality and should be tested before enforcement. Because exploitation requires an existing staff account, audit and minimize staff users, remove dormant or over-privileged accounts, and review recent uploads for unexpected HTML/SVG-style files; note that these measures reduce likelihood and blast radius but do not substitute for patching, and no public exploit code has been identified at time of analysis.

Affected VersionsENISA

Ghost 6.22.1 <6.64.0

Affected Packages

npm ghost fix: 6.64.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

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, i.e. stored cross-site scripting) arising from how Ghost's default local storage adapter handles uploaded files. Ghost is a Node.js publishing platform whose admin panel and uploaded media are normally served from the same origin; when a file is uploaded, the content type is inferred from the file extension rather than being validated or forced to a safe set, so a script-bearing file (for example one saved with an .html or .svg-style extension) is returned to the browser as renderable active content instead of as an inert attachment. Because that content is delivered from the CMS's own origin, any script it contains executes in the origin of the admin interface and can act on behalf of a viewing staff user rather than being confined by same-origin policy. The affected component is identified by CPE cpe:2.3:a:tryghost:ghost:*:*:*:*:*:*:*:* and tracked in the EU as EUVD-2026-91422. Note the vector discrepancy between sources: the supplied CVSS 4.0 score of 8.5 (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N) and the independent CVSS 3.1 assessment (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N) agree on the essentials - network-reachable, low-complexity, authenticated, user-interaction dependent, scope-changing, with high confidentiality and integrity impact but no availability impact.

Know when Ghost 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 8.5 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.7 HIGH

Stored XSS exploitable by an authenticated staff user (PR:L) against another user's browser session, so S:C with UI:R; admin-session takeover yields C:H/I:H, no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/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
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 02, 2026 - 12:02 EUVD
CVE Published
Oct 02, 2026 - 11:37 cve.org
HIGH 8.5

DescriptionCVE.org

Ghost from 6.22.1 before 6.64.0 contains a stored cross-site scripting vulnerability that allows staff users to host scripts by uploading files served with extension-derived content types on the default local storage adapter. Attackers can upload script-bearing files to the site's domain to compromise other staff users' admin sessions.

Technical POC Analysis

CWE-79 (stored cross-site scripting), with CWE-434 listed by the advisory as the contributing upload-side weakness.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Ghost CMS deployments running versions 6.22.1 through 6.63.x carry a stored cross-site scripting flaw that lets an existing staff-level account plant malicious content in uploaded files, which is then served back from the site's own domain and can hijack the browser session of any colleague who opens it - including administrators with broader publishing and configuration rights. Because the attacker already needs a legitimate staff login and the victim must interact with the file, this is a targeted insider or compromised-account risk rather than an opportunistic mass-exploitation event, but successful abuse could yield administrative control of the content platform. Marketing, editorial, and platform-owning teams that rely on Ghost for public-facing content are the primary exposure group.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Medium
popular open-source publishing CMS, moderate but not ubiquitous footprint
Data Quality
4 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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
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.

More in Ghost

View all
CVE-2026-22594 HIGH POC
8.1 Jan 10

Ghost CMS versions 5.105.0-5.130.5 and 6.0.0-6.10.3 contain an authentication bypass in their two-factor authentication

CVE-2026-29053 HIGH POC
7.6 Mar 05

Arbitrary code execution in Ghost CMS versions 0.7.2 through 6.19.0 allows authenticated attackers with theme upload pri

CVE-2022-28397 CRITICAL POC
9.8 Apr 12

An arbitrary file upload vulnerability in the file upload module of Ghost CMS v4.42.0 allows attackers to execute arbitr

CVE-2022-27139 CRITICAL POC
9.8 Apr 12

An arbitrary file upload vulnerability in the file upload module of Ghost v4.39.0 allows attackers to execute arbitrary

CVE-2026-26980 CRITICAL POC
9.4 Feb 20

SQL injection in Ghost CMS versions 3.24.0 through 6.19.0 allows unauthenticated attackers to read arbitrary database da

CVE-2024-34451 CRITICAL POC
9.1 Jun 16

Ghost through 5.85.1 allows remote attackers to bypass an authentication rate-limit protection mechanism by using many X

CVE-2024-23724 CRITICAL POC
9.0 Feb 11

Ghost through 5.76.0 allows stored XSS, and resultant privilege escalation in which a contributor can take over any acco

CVE-2024-34448 HIGH POC
8.8 May 22

Ghost before 5.82.0 allows CSV Injection during a member CSV export. Rated high severity (CVSS 8.8), this vulnerability

CVE-2020-8134 HIGH POC
8.1 Mar 20

Server-side request forgery (SSRF) vulnerability in Ghost CMS < 3.10.0 allows an attacker to scan local or external netw

CVE-2023-32235 HIGH POC
7.5 May 05

Ghost before 5.42.1 allows remote attackers to read arbitrary files within the active theme's folder via /assets/built%2

CVE-2021-29484 MEDIUM POC
6.8 Apr 29

Ghost is a Node.js CMS. Rated medium severity (CVSS 6.8), this vulnerability is remotely exploitable, no authentication

CVE-2023-40028 MEDIUM POC
6.5 Aug 15

Ghost is an open source content management system. Rated medium severity (CVSS 6.5), this vulnerability is remotely expl

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