Skip to main content

Ghost CMS CVE-2026-70589

| EUVDEUVD-2026-52929 MEDIUM
Improper Input Validation (CWE-20)
2026-08-04 https://github.com/TryGhost/Ghost GHSA-4wx2-7gvj-qfq3
4.8
CVSS 3.1 · Vendor: https://github.com/TryGhost/Ghost
Share

Severity by source

Vendor (https://github.com/TryGhost/Ghost) PRIMARY
4.8 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI
4.8 MEDIUM

Network-accessible public checkout endpoint, but AC:H because attacker must possess a non-enumerable archived offer UUID; no auth required per PR:N; limited confidentiality and integrity impact only.

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

Primary rating from Vendor (https://github.com/TryGhost/Ghost).

CVSS VectorVendor: https://github.com/TryGhost/Ghost

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

Lifecycle Timeline

2
Source Code Evidence Fetched
Aug 04, 2026 - 21:36 vuln.today
Analysis Generated
Aug 04, 2026 - 21:36 vuln.today

DescriptionCVE.org

Impact

A missing validation check allowed users to redeem subscription offers that were no longer active.

Vulnerable versions

This vulnerability is present in Ghost from v4.22.0 up to v6.54.0.

Patches

v6.54.1 contains a fix for this issue.

How to update

For self-hosters using Docker, find Docker's official Ghost image here. Updating a Docker-based Ghost instance is documented here.

If your Ghost is a Ghost-CLI install see our documentation on updating it to the latest version here.

References

Ghost thanks Pedro Pinho for disclosing this vulnerability responsibly.

For more information

If you have any questions or comments about this advisory, email us at [security@ghost.org](mailto:security@ghost.org).

AnalysisAI

Ghost CMS subscription checkout accepts redemption of archived offers due to missing offer-status validation in the member router controller, affecting all self-hosted Ghost instances from v4.22.0 through v6.54.0. Unauthenticated users who possess or can discover an archived offer ID can submit a valid checkout request and obtain unauthorized subscription discounts or access at a revoked price point. No public exploit code has been identified and this CVE is absent from CISA KEV, but the direct financial impact on subscription-based Ghost sites makes it a meaningful business-logic risk for affected operators.

Technical ContextAI

Ghost (npm package: pkg:npm/ghost) is a Node.js open-source publishing and membership platform with Stripe-integrated subscription and offer management. The vulnerability resides in the _getSubscriptionCheckoutData method within ghost/core/core/server/services/members/members-api/controllers/router-controller.js. This method retrieves an offer object by its ID during checkout but, prior to v6.54.1, never validated the retrieved offer's status field against the expected value of 'active'. Offers in 'archived' status were indistinguishable from active ones at the checkout layer, allowing the flow to proceed to Stripe payment processing with a revoked offer applied. CWE-20 (Improper Input Validation) correctly identifies the root cause: a business-state property of a server-side resource was not checked before acting on the user-supplied reference. The fix confirmed in commit d91c0fc52dfc987d71a9803dbcbe6447d21b92fb adds an explicit guard: if (offer.status && offer.status !== 'active') throw new BadRequestError(...), preventing archived offer IDs from reaching downstream subscription logic.

RemediationAI

Upgrade Ghost to v6.54.1 or later, which contains the server-side status validation fix confirmed in commit d91c0fc52dfc987d71a9803dbcbe6447d21b92fb. For Docker-based self-hosters, pull the updated official Ghost image from hub.docker.com/_/ghost and redeploy per Ghost's Docker update documentation at https://docs.ghost.org/install/docker#updating-ghost. For Ghost-CLI installations, follow the upgrade procedure at https://docs.ghost.org/update. If immediate upgrading is not possible, a targeted compensating control would be to audit current archived offers in the Ghost admin panel and, where feasible, delete rather than merely archive any sensitive promotional offers to eliminate the redeemable IDs entirely - deletion removes the database record the checkout controller would resolve, whereas archiving only sets the status flag that was not previously checked. Note that deleting offers may affect historical subscription reporting. There is no network-layer mitigation that would address this without also disrupting the legitimate checkout flow.

More in Docker

View all
CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2019-5736 HIGH POC
8.6 Feb 11

runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac

CVE-2023-32077 HIGH POC
7.5 Aug 24

Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2023-5815 HIGH POC
8.1 Nov 22

The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post

CVE-2026-66384 MEDIUM POC
5.3 Aug 12

Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten

CVE-2014-9357 CRITICAL
10.0 Dec 16

Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build

CVE-2026-52806 CRITICAL POC
9.9 Jun 23

Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config

CVE-2026-56274 HIGH POC
8.7 Jun 23

Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per

CVE-2026-34156 CRITICAL POC
9.9 Mar 30

Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l

CVE-2019-15752 HIGH POC
7.8 Aug 28

Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c

CVE-2025-34221 CRITICAL POC
10.0 Sep 29

Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2

Share

CVE-2026-70589 vulnerability details – vuln.today

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