Skip to main content

Ghost CMS EUVDEUVD-2026-52928

| CVE-2026-70588 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-04 GitHub_M GHSA-2gx6-7gx2-wwcf
5.0
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
5.0 MEDIUM
AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:L
vuln.today AI
4.0 MEDIUM

XSS requires a victim to render affected content (UI:R) and crosses the admin-to-browser security boundary (S:C); admin credentials are mandatory (PR:H); no availability impact applies.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

3
Patch available
Aug 04, 2026 - 22:02 EUVD
Source Code Evidence Fetched
Aug 04, 2026 - 21:36 vuln.today
Analysis Generated
Aug 04, 2026 - 21:36 vuln.today

DescriptionCVE.org

Ghost is a Node.js content management system. From 5.26.0 until 6.54.1, the Universal Import feature in Ghost Admin failed to properly sanitize imported content resulting in XSS in post content. This issue is fixed in version 6.54.1.

AnalysisAI

Cross-site scripting in Ghost CMS (versions 5.26.0 through 6.54.0) allows a high-privileged administrator to plant arbitrary JavaScript via the Universal Import feature, which fails to sanitize the feature_image_caption field and link card URLs before storing and rendering them. The fix in v6.54.1 introduces DOMPurify sanitization across both the Ember-based admin post history modal and the Node.js frontend rendering pipeline, alongside a strict URL protocol allowlist in the JSON-to-HTML importer. No active exploitation is confirmed (not in CISA KEV) and no public proof-of-concept is known; the high-privilege prerequisite substantially limits the realistic attacker pool.

Technical ContextAI

Ghost is an open-source Node.js CMS distributed as the npm package ghost (CPE: cpe:2.3:a:tryghost:ghost:*:*:*:*:*:*:*:*). The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation - Cross-Site Scripting) manifesting in two code paths: (1) the Ember-based Ghost Admin's post history modal (modal-post-history.js) rendered the feature_image_caption revision field without HTML sanitization, and (2) the frontend proxy service (proxy.js) wrapped the same field in a SafeString - bypassing Handlebars auto-escaping - without prior sanitization. A third path in json-to-html.js (the Universal Import JSON-to-HTML converter) failed to validate link card href URLs, permitting javascript: URIs and attribute injection. The patch adds DOMPurify server-side (via jsdom) with an allowlist restricted to tags a, b, i, span and attributes href, style, explicitly blocking data-* and aria-* attributes. URL validation was hardened with a getValidURL helper that enforces http: or https: protocols and uses a serializer to escape attribute values.

RemediationAI

Upgrade Ghost to v6.54.1 or later - this is the vendor-released patch confirmed by GHSA-2gx6-7gx2-wwcf and the GitHub release tag. Docker-based deployments should update the official Ghost image (https://hub.docker.com/_/ghost) following Ghost's Docker update guide at https://docs.ghost.org/install/docker#updating-ghost; Ghost-CLI installations should follow the update procedure at https://docs.ghost.org/update. If immediate upgrade is not feasible, the vendor advisory explicitly recommends disabling use of the Universal Import feature as the sole workaround - this eliminates the attack vector entirely but prevents content migration workflows that depend on bulk import. No other compensating controls are documented by the vendor, and no network-layer mitigation can substitute for sanitizing stored content already imported before patching.

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

Share

EUVD-2026-52928 vulnerability details – vuln.today

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