CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-70592

CVE-2026-70592: Path Traversal Vulnerability in Ghost CMS Database Exporter

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 5, 2026·5 min read·3 visits

Executive Summary (TL;DR)

An authenticated path traversal vulnerability in Ghost CMS database export functionality allows arbitrary file writing on the server hosting the application, fixed in version 6.54.1.

A path traversal vulnerability (CWE-22) in Ghost CMS versions 1.20.1 through 6.54.0 allows authenticated administrators to escape the backup directory and perform arbitrary file write operations on the hosting system. This vulnerability was resolved in version 6.54.1.

Vulnerability Overview

CVE-2026-70592 defines a path traversal vulnerability within the database backup and export utility of Ghost CMS, an open-source Node.js-based content management system. This security flaw affects Ghost CMS deployments from version 1.20.1 up to but excluding version 6.54.1. The issue allows an authenticated user with administrative privileges to write or overwrite files outside of the application's designated backup folder.

The vulnerability is located in the administration interface, which is responsible for managing application states and database backups. The application accepts user-supplied parameters to define output archives during backup procedures. This exposed interface allows input to be processed directly by file write operations without structural validation.

Because administrative interfaces are typically exposed to authorized managers over HTTP, exploitation poses a threat to the integrity and availability of the underlying server. An attacker can write to arbitrary locations, leading to application configuration corruption or potential code execution depending on system-level configuration parameters. This vulnerability is cataloged as CWE-22 (Improper Limitation of a Pathname to a Restricted Directory).

Root Cause Analysis

The root cause of CVE-2026-70592 lies in the database export controller processing user-supplied path components without validating or removing directory separator characters. Specifically, the module located at ghost/core/core/server/data/exporter/export-filename.js processes requests by reading a custom filename option directly from client input.

When administrators request a database export, they can specify a custom filename. In vulnerable versions, this parameter is concatenated directly with the .json extension without checking for the presence of path navigation characters. Consequently, path traversal inputs such as ../ are interpreted literally by the underlying operating system filesystem APIs.

When the Node.js standard libraries or stream writers write the database export dump to the disk, they resolve these relative paths relative to the application's root directory. This allows the written file to escape the restricted destination directory. Because the application does not validate that the computed target path resides within the backup folder, file writes are executed at the resolved destination. Triggering the vulnerability requires only an authenticated administrative session and a crafted API invocation.

Code-Level Patch Analysis

The vulnerability was resolved in commit f466c300191a609ed36c8d7c5d1e33ccd440786b by introducing strict validation inside the endpoint handler and sanitizing input parameters inside the database exporter module.

The comparison below highlights the changes introduced to validate the filename parameter inside the administrative API endpoint:

// In ghost/core/core/server/api/endpoints/db.js (Patched Code)
const filename = frame.options.filename;
if (filename && path.basename(filename) !== filename) {
    throw new errors.ValidationError({message: 'Export filename must not contain path separators'});
}

Additionally, the exporter utility was updated to prevent directory navigation sequences from reaching filesystem routines:

// In ghost/core/core/server/data/exporter/export-filename.js (Vulnerable Code)
if (options.filename) {
    return options.filename + '.json';
}
 
// In ghost/core/core/server/data/exporter/export-filename.js (Patched Code)
if (options.filename) {
    return path.basename(options.filename) + '.json';
}

This double-layered correction blocks malformed filenames at the API gateway layer and strips directory navigation sequences inside the core filesystem interaction layer.

Exploitation Dynamics & Mechanics

Exploitation of CVE-2026-70592 requires administrative privileges within the target Ghost CMS instance. No complex configuration settings or specialized environments are necessary. The primary attack vector involves sending an authenticated POST request containing path navigation characters to the backup API endpoint.

An attacker constructs a request targeting /ghost/api/admin/db/backup/ with the query parameter filename containing relative path indicators, such as ../../../../config.production. The application processes this value and initiates a file creation routine targeting the resolved path with a .json extension appended.

POST /ghost/api/admin/db/backup/?filename=../../../../config.production HTTP/1.1
Host: ghost-target.local
Authorization: Bearer [JWT_TOKEN]
Content-Type: application/json
Connection: close

The resulting request triggers a write operation that places a JSON representation of the database at the target path, such as /var/www/ghost/config.production.json. This overwrite action allows attackers to disrupt services or alter configuration details on the local filesystem.

System Impact & Threat Modeling

The impact of CVE-2026-70592 is classified as Medium, represented by a CVSS v3.1 score of 5.5. The scope metric is set to Changed because the application flaw enables write operations that escape the application context, modifying elements of the hosting system's filesystem directly.

Attackers can overwrite critical files such as config.production.json, modifying database connection strings, email configurations, or storage adapters. This level of manipulation can induce persistent Denial of Service or divert system communications to external destinations controlled by the attacker.

If the Ghost CMS daemon runs with elevated permissions on the host system, the impact may extend to other system-level folders. Overwriting Node.js dependency structures or configuration files in the wider environment can crash the main service thread or execute modified code when the process restarts. The overall severity depends heavily on filesystem write permissions assigned to the Ghost application process.

Remediation & Defense-in-Depth

The recommended remediation for CVE-2026-70592 is to upgrade the Ghost CMS instance to version 6.54.1 or later. This release contains the necessary input checking logic to block path traversal sequences during the API request life cycle.

If an immediate upgrade is not feasible, administrators can disable JS-based backups entirely to mitigate exposure. This is done by modifying the application configuration to deactivate the database backup module.

{
  "disableJSBackups": true
}

Administrators can also apply this workaround by setting the environment variable disableJSBackups to true. Furthermore, running Ghost under a strict least-privilege system user account restricts write capabilities to specified directories, preventing system-wide configuration tampering.

Fix Analysis (1)

Technical Appendix

CVSS Score
5.5/ 10
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:L/A:L
12,000
via Shodan

Affected Systems

Ghost CMS

Affected Versions Detail

Product
Affected Versions
Fixed Version
Ghost
TryGhost
>= 1.20.1, < 6.54.16.54.1
AttributeDetail
CWE IDCWE-22
Attack VectorNetwork
CVSS v3.1 Score5.5
EPSS ScoreN/A
ImpactArbitrary File Write / Overwrite
Exploit StatusNone / Conceptual
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1083File and Directory Discovery
Discovery
T1005Data from Local System
Collection
CWE-22
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Vulnerability Timeline

Security patch committed to Ghost repository
2026-07-15
Ghost version 6.54.1 released
2026-08-04
Advisory CVE-2026-70592 published
2026-08-04

References & Sources

  • [1]GitHub Security Advisory GHSA-cj62-hvv2-2q5h
  • [2]Official Fix Commit f466c30
  • [3]Ghost Release v6.54.1
  • [4]NVD CVE-2026-70592 Record
  • [5]CVE.org Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•10 minutes ago•CVE-2026-70590
4.8

CVE-2026-70590: Blind Password Hash Disclosure in TryGhost Ghost Admin API via Insecure Filter Mapping

An authenticated staff-level user can perform a side-channel, boolean-based blind database query attack through the Ghost Admin API to systematically extract the hashed passwords (bcrypt) of other staff users, including administrators, due to insecure filter mapping.

Alon Barad
Alon Barad
0 views•7 min read
•about 1 hour ago•CVE-2026-70591
4.1

CVE-2026-70591: Server-Side Request Forgery in Ghost Admin Image Fetching

A comprehensive technical analysis of CVE-2026-70591, a Server-Side Request Forgery (SSRF) vulnerability identified in the Ghost Content Management System. The flaw resides in the server-side image fetching mechanism of the ImageSize class, which allows authenticated, staff-level users to force the backend to perform unvalidated HTTP GET requests targeting local or private network services. This report provides an in-depth exploration of the root cause, vulnerable code structures, patch implementations, and mitigation steps.

Alon Barad
Alon Barad
1 views•7 min read
•about 3 hours ago•CVE-2026-70593
6.6

CVE-2026-70593: Path Traversal and Arbitrary File Write via Custom Theme Upload in Ghost CMS

CVE-2026-70593 is a path traversal and arbitrary file write vulnerability affecting Ghost CMS. Versions from 0.10.0 up to 6.54.0 are vulnerable. Authenticated administrators can exploit this flaw by uploading a custom theme in a ZIP archive that contains path traversal characters. The vulnerability is mitigated in version 6.54.1.

Alon Barad
Alon Barad
5 views•5 min read
•about 4 hours ago•CVE-2026-70594
6.7

CVE-2026-70594: Session Fixation in Ghost Admin Panel

A critical session fixation vulnerability exists in the Ghost Admin panel from version 2.2.0 until 6.54.1. The Express-based authentication backend fails to invalidate or rotate the session identifier during login, allowing attackers to hijack administrative sessions.

Alon Barad
Alon Barad
3 views•5 min read
•about 5 hours ago•CVE-2026-53950
7.5

CVE-2026-53950: DOM-based Cross-Site Scripting in @tryghost/activitypub

A high-severity Cross-Site Scripting (XSS) vulnerability was identified in the @tryghost/activitypub package, the social and federation client library for the Ghost publishing platform. Prior to version 3.1.0, the ActivityPub client rendered incoming federated posts from external servers directly in the web user interface without proper sanitization. A maliciously customized ActivityPub server federated with a Ghost instance could transmit crafted posts containing embedded HTML payloads. When viewed by a user inside the ActivityPub client interface, the browser executes the injected JavaScript within the security context of the Ghost application domain.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 6 hours ago•CVE-2026-53947
5.3

CVE-2026-53947: Observable Response Discrepancy (User Enumeration) in Ghost CMS

CVE-2026-53947 is an observable response discrepancy (CWE-204) in Ghost CMS that permits unauthenticated remote user enumeration via the passwordless magic link sign-in endpoint.

Amit Schendel
Amit Schendel
8 views•7 min read