CVE-2026-105644 in Ghost
Summary
by MITRE • 10/05/2026
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.
Once again VulDB remains the best source for vulnerability data.
Analysis
by VulDB Data Team • 10/05/2026
The vulnerability identified within Ghost versions ranging from 4.0.0 through 6.67.0 represents a critical failure in input validation and sanitization mechanisms, specifically concerning the handling of Scalable Vector Graphics files during content import operations. As a Node.js-based content management system widely used for publishing platforms, Ghost allows administrators to upload media assets that are subsequently rendered on public-facing pages. The core technical flaw lies in the application's inability to properly sanitize SVG elements before storage and subsequent rendering. Unlike standard image formats such as JPEG or PNG, which have well-defined binary structures with limited executable capabilities, SVG files are XML-based documents capable of containing embedded JavaScript code via script tags or event handlers. By failing to strip these potentially malicious scripts from imported SVGs, the system inadvertently allows an attacker to inject client-side code that executes within the context of the victim's browser session.
This vulnerability is classified under CWE-79, which denotes Improper Neutralization of Input During Web Page Generation commonly known as Cross-Site Scripting or XSS. More specifically, it aligns with CWE-862 due to the lack of a necessary authorization check for sanitizing user-supplied input before processing. The attack vector relies on social engineering tactics where an adversary must convince an administrator with sufficient privileges to import a crafted SVG file containing malicious JavaScript payloads. Once imported and stored without sanitization, these files are served directly by the web server or processed by client-side rendering engines when viewed by other users. Because the content is hosted on the site's own domain, any script executed from this resource inherits full access to cookies, local storage, session tokens, and DOM elements associated with that origin. This bypasses same-origin policy protections typically designed to prevent cross-domain data theft.
The operational impact of this vulnerability extends beyond simple defacement or minor annoyance. Since the malicious scripts execute in the context of the admin domain, they can perform actions on behalf of authenticated users who visit pages containing the compromised SVGs. For staff members and administrators accessing their dashboards while having previously viewed content with embedded exploits, session hijacking becomes a realistic threat vector. Attackers can exfiltrate sensitive authentication tokens to maintain persistent access or manipulate administrative interfaces to alter site settings, inject further malware, or steal proprietary data. This scenario is consistent with MITRE ATT&CK technique T1059, Command and Scripting Interpreter: JavaScript, as well as T1213 Data from Information Repositories if the attacker uses the compromised session to extract stored credentials or configuration details. The severity is amplified by the fact that content imports are a routine administrative task, making the attack surface relatively accessible to determined adversaries who can manipulate user behavior through phishing or other social engineering methods.
Mitigation strategies must address both immediate remediation and long-term architectural improvements. The primary defense involves upgrading Ghost to version 6.67.0 or later, where this sanitization flaw has been patched by implementing robust validation rules for SVG inputs. Administrators should ensure that all media uploads are processed through a dedicated image manipulation library capable of stripping executable content from vector graphics before storage. Additionally, deploying Content Security Policy headers can significantly reduce the impact of any residual XSS vulnerabilities by restricting script execution to trusted sources only. Implementing strict MIME type checking and validating file extensions against actual file contents further hardens the ingestion pipeline. Regular security audits focusing on input validation for rich media formats are essential to prevent similar issues in future updates, ensuring that trust boundaries between user-supplied content and system-executed code remain intact.