Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Administrator
-
DeliverySend crafted request to external media inliner
-
ExploitTrigger catastrophic regex backtracking
-
ExecutionExhaust CPU / block event loop
-
ImpactGhost server becomes unresponsive
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Regex complexity limits
MITRE ATT&CK
1 technique across 1 tactic: Impact 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 Administrator account (CVSS PR:H) to send a crafted request to the external media inliner feature; the vulnerable code path is the inliner's URL-matching logic that builds unescaped RegExp patterns from domain/directory strings. Exploitation is limited by the Administrator privilege requirement - a non-admin user, anonymous visitor, or default read-only front-end request cannot reach the vulnerable path - so realistic risk is confined to malicious administrators or attackers who have already compromised admin credentials. Affected only on versions 5.37.0 through 6.66.x; 6.67.0 and later are patched. |
| Impact | This is a genuine but low-priority denial-of-service issue (CWE-1333, inefficient regular expression complexity / ReDoS) rather than a high-impact flaw. The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H) scores 4.9 Medium, and the single most important mitigating signal is PR:H: exploitation requires existing Administrator access, as stated explicitly in the description. There is no confidentiality or integrity impact (C:N/I:N) - only availability (A:H) via CPU exhaustion of the Node.js event loop. No EPSS score, KEV listing, or POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The source-code evidence corroborates the description: the fix (commit 88ae6d6) adds lodash _.escapeRegExp() around directory names used to build RegExp objects and wraps the external media inliner's matchAll() in a V8 vm execution timeout, confirming catastrophic regex backtracking as the root cause. Net assessment: a real defect worth patching, but the admin-only precondition means this is a self-inflicted or insider/compromised-admin risk, not an internet-facing mass-exploitation threat. |
| Exploit ScenarioDerived | An authenticated Ghost Administrator (or an attacker who has already compromised an admin account) sends a crafted request to the external media inliner containing input that triggers catastrophic regex backtracking. The matchAll() operation consumes excessive CPU, blocking the Node.js event loop and rendering the Ghost server unresponsive to all users. No public proof-of-concept was provided in the input, and the network attack vector is gated entirely by the required Administrator privilege. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
Denial of service in Ghost CMS 5.37.0 through 6.66.x allows an authenticated administrator to pin server CPU and render the Ghost instance unresponsive by sending a crafted request to the external media inliner, which compiles attacker-influenced domain strings into unescaped regular expressions (CWE-1333, inefficient regular expression complexity / catastrophic backtracking). Exploitation requires a Ghost Administrator account (CVSS PR:H, AV:N/AC:L/UI:N/S:U/C:N/I:N/A:H, base score 4.9), so realistic risk is confined to malicious or compromised admin accounts rather than anonymous visitors or the read-only front end. No public exploit identified at time of analysis; the vendor fix is contained in Ghost 6.67.0.
RemediationAI
Vendor-released patch: upgrade Ghost to 6.67.0, which is the first fixed release; the correcting change is commit 88ae6d6d56f8a239cb38a8c89de02f034f50e2ce (GitHub Security Advisory GHSA-9m4w-fmjw-fvjq, tracking issue 31058). Where an immediate upgrade is not possible, the most effective compensating control is to remove the attack path by ensuring no untrusted party holds Administrator credentials on the instance - audit and rotate admin accounts, enforce strong unique passwords and MFA on the admin role, and treat the CVSS PR:H requirement as the primary risk limiter, since a non-admin or anonymous request cannot reach the vulnerable media-inliner code path (side effect: no functional loss, but admin-account compromise elsewhere still re-opens the issue). Administrators should also avoid running content imports or external media inlining against content whose embedded domain or directory values come from untrusted sources until the upgrade is applied, accepting the trade-off that legitimate migrations with wildcard-style domain patterns may then fail or require manual cleanup. Because the impact is availability-only, operational monitoring for Node.js CPU saturation and slow or hanging requests during import/inlining operations is a reasonable detective measure, but it does not prevent the denial of service and should not be treated as a substitute for upgrading to 6.67.0.
Affected VersionsENISA
Affected Packages
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 flaw is a classic ReDoS (CWE-1333) rooted in how Ghost builds regular expressions from dynamic strings. In the external media inliner (ghost/core/core/server/services/media-inliner/external-media-inliner.js), migration tooling passes domain values that are treated as regex patterns - including wildcard-style patterns such as https?://i[0-9]{1}.wp.com - and these patterns were interpolated directly into new RegExp('^' + domain + '/') and then fed to content.matchAll(regex). Domain or directory values containing regex metacharacters can therefore produce patterns with pathological backtracking behaviour, so a single crafted request forces the Node.js event loop to spend unbounded CPU, starving other requests and making the Ghost server unresponsive. The same unescaped-interpolation pattern existed in several importer handlers (data/importer/handlers/image.js, importer-content-file-handler.js, markdown.js and revue.js). The upstream commit 88ae6d6d56f8a239cb38a8c89de02f034f50e2ce fixes the importer handlers by wrapping start/base directory values in _.escapeRegExp, and hardens the media inliner differently because its patterns must remain regex-capable: matching now runs inside a Node node:vm context via runInContext(..., { timeout: 1000 }), throwing a MEDIA_INLINER_PATTERN_TIMEOUT DataImportError on ERR_SCRIPT_EXECUTION_TIMEOUT. The caller tracks a timedOutDomains set so a pattern that times out once is skipped for the remaining posts instead of repeatedly burning the 1000 ms budget, keeping replacements from other domains intact. Affected CPE coverage is broad and version-open (cpe:2.3:a:tryghost:ghost:*:*:*:*:*:*:*:*), consistent with the advisory covering the 5.37.0 to 6.66.x range.
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
AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
Network-reachable admin API with low-complexity crafted input, but requires Administrator privileges (PR:H); only availability is affected via CPU exhaustion (C:N/I:N/A:H).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Ghost is a Node.js content management system. From 5.37.0 until 6.67.0, a crafted request to the external media inliner could cause excessive CPU usage, making the Ghost server unresponsive. Exploiting this requires Administrator access. This issue is fixed in version 6.67.0.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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
Arbitrary code execution in Ghost CMS versions 0.7.2 through 6.19.0 allows authenticated attackers with theme upload pri
An arbitrary file upload vulnerability in the file upload module of Ghost CMS v4.42.0 allows attackers to execute arbitr
An arbitrary file upload vulnerability in the file upload module of Ghost v4.39.0 allows attackers to execute arbitrary
SQL injection in Ghost CMS versions 3.24.0 through 6.19.0 allows unauthenticated attackers to read arbitrary database da
Ghost through 5.85.1 allows remote attackers to bypass an authentication rate-limit protection mechanism by using many X
Ghost through 5.76.0 allows stored XSS, and resultant privilege escalation in which a contributor can take over any acco
Ghost before 5.82.0 allows CSV Injection during a member CSV export. Rated high severity (CVSS 8.8), this vulnerability
Server-side request forgery (SSRF) vulnerability in Ghost CMS < 3.10.0 allows an attacker to scan local or external netw
Ghost before 5.42.1 allows remote attackers to read arbitrary files within the active theme's folder via /assets/built%2
Ghost is a Node.js CMS. Rated medium severity (CVSS 6.8), this vulnerability is remotely exploitable, no authentication
Ghost is an open source content management system. Rated medium severity (CVSS 6.5), this vulnerability is remotely expl
EUVD-2026-92635
GHSA-9m4w-fmjw-fvjq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB