Skip to main content

Ghost CMS CVE-2026-105644

| EUVDEUVD-2026-92633 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-05 GitHub_M GHSA-hqq2-xqr2-fmx2
6.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious SVG with embedded script
  2. Delivery
    Social-engineer Administrator to import file
  3. Exploit
    SVG stored unsanitized on site domain
  4. Execution
    Script executes in staff user browser
  5. Impact
    Hijack admin session for account compromise

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 the Ghost content import feature and an Administrator who is tricked into importing an attacker-supplied file containing a crafted SVG; the malicious SVG is then stored unsanitized and served from the site's own domain. Affected only in versions 4.0.0 up to (but not including) the fixed release. Key limiting factors: the attack is not self-service - it needs active social engineering of a privileged Administrator to perform the import (UI:R), and impact further depends on a staff user subsequently rendering the stored SVG in an authenticated admin context for session compromise. No special non-default configuration is otherwise required.

Impact

This is a genuine but conditional risk rather than a drop-everything priority. The supplied CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N, 6.8 Medium) is internally consistent with the description: network-reachable but gated behind high attack complexity (AC:H) and required user interaction (UI:R) - specifically, an Administrator must be convinced to import a crafted file. No EPSS score was provided, there is no CISA KEV listing, and no public POC was supplied, so by the precision rules exploitation status is 'no public exploit identified at time of analysis.' The signals do not conflict: a Medium CVSS with AC:H/UI:R aligns with the absence of KEV/POC, indicating a stored-XSS issue that requires social engineering of a privileged user rather than mass, automatable exploitation. The main caveat is a version discrepancy in the source data (see confidence_notes) and the lack of EPSS/POC telemetry, which are missing rather than contradictory. Overall: patch on a normal cadence; it is not a wormable or unauthenticated-RCE emergency, but successful exploitation does yield high-value admin session compromise.

Exploit ScenarioDerived

An attacker crafts an SVG file containing embedded JavaScript and, through phishing or a plausible pretext (e.g. a content migration or guest-post package), persuades a Ghost Administrator to import it via the content import feature. Because SVGs in imports were stored without sanitization (versions 4.0.0 through pre-6.67.0), the script is now hosted on the site's own domain and executes in the browser of staff users who view it, enabling theft or hijacking of their admin sessions. No public exploit code was identified at time of analysis, and exploitation hinges on convincing a privileged user to perform the import.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 05, 2026

Stored cross-site scripting in Ghost CMS versions 4.0.0 through 6.66.x allows an attacker to plant malicious JavaScript on the victim site's own domain by convincing an Administrator to import a crafted content archive containing an unsanitized SVG image. Per the CVSS vector (AV:N/AC:H/PR:N/UI:R), the attacker does not need credentials but the attack is not self-service: it depends on successful social engineering of a privileged Administrator to run the import (UI:R), and impact on staff users' admin sessions further depends on that stored SVG being rendered in an authenticated admin context. Exploitation is therefore conditional rather than opportunistic, and no public exploit code has been identified at time of analysis (no CISA KEV listing).

RemediationAI

Upgrade to Ghost 6.67.0, the vendor-released fix version, which sanitizes SVG files on import and validates image contents against the configured format allowlist (advisory: https://github.com/TryGhost/Ghost/security/advisories/GHSA-hqq2-xqr2-fmx2; upstream fix: PR https://github.com/TryGhost/Ghost/pull/31060 and commit https://github.com/TryGhost/Ghost/commit/1be06f4e95a5eb159d14abda7660e689af13cff1). If immediate upgrade is not possible, the highest-value compensating control is procedural: treat every inbound Ghost import archive as untrusted and forbid Administrators from importing files from external or unverified sources, since the entire attack chain requires an admin to run the import (trade-off: this is a policy control, not a technical one, and relies on admin discipline). Technically, restrict who can reach the admin API and the import endpoint to a small, trusted set of accounts and source IP ranges, and remove or reverse-proxy-block the import route entirely on instances that do not use it (trade-off: legitimate migration/site-restore workflows break). Serving uploaded media from a separate cookie-less domain would prevent stored scripts from executing in the main admin origin's context (trade-off: requires CDN/domain reconfiguration and may break existing content links). A strong Content-Security-Policy on admin pages that disallows inline and third-party script can blunt execution of stored SVG script (trade-off: CSP must be tuned to Ghost's own admin bundle and will not help if the SVG is rendered outside the CSP-protected context). Note that sanitizing or deleting already-imported SVG assets and rotating staff admin sessions is advisable on any instance where a suspicious import occurred.

Affected VersionsENISA

Ghost 4.0.0, < 6.67.0

Affected Packages

npm ghost fix: 6.67.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

Ghost's content import pipeline extracts files from an uploaded archive and previously selected images for storage based on file extension alone, with no validation of actual file contents and no sanitization of SVG payloads. Because SVG is XML, it can legitimately contain script elements and event handlers; when such a file is stored as an 'image' and served from the Ghost site's origin, the browser executes that script in the site's security context, giving the attacker a stored XSS foothold on a trusted domain - the classic CWE-79 failure mode with a privileged admin audience. The upstream fix (PR #31060, commit 1be06f4) addresses the root cause in several layers: the importer's image handler now asynchronously validates each candidate file (bounded to 10 concurrent file handles via a promise pool) using the new image-content module, which detects real file types from bytes with the file-type library rather than trusting the filename, and routes anything with an SVG/SVGZ extension to the SVG sanitizer instead. Supporting changes restrict image decoders to the configured upload extensions at boot and warn when non-image content types are configured under uploads.*.contentTypes, so a spoofed extension such as .jpg containing HTML or script no longer passes the allowlist.

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 (GitHub_M) PRIMARY 6.8 MEDIUM
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
vuln.today AI 6.8 MEDIUM

Attacker is unauthenticated (PR:N) but must socially engineer an Administrator to import the file (UI:R) and rely on later rendering, warranting AC:H; stored XSS yields admin-session C:H/I:H, no availability impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

1
Patch available
Oct 05, 2026 - 20:17 EUVD

DescriptionCVE.org

Ghost is a Node.js content management system. From 4.0.0 until 6.67.0, SVG images included in content imports were stored without sanitization. An attacker who convinced an Administrator to import a crafted file could host scripts on the site's domain, possibly resulting in compromise of staff users' admin sessions. This issue is fixed in version 6.67.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
popular open-source Node.js CMS, sizable but not ubiquitous footprint
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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 No
EPSS 0.3%
Patch available Yes
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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Total

Priority Score

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