Sceawere

Vulnerability Detail

CVE-2026-85601UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV

Grav Admin XSS via MarkdownEditor

Vulnerability Metadata

Severity
Medium
Score / CVSS
5.4
Creation Date
2h ago
Vendor
getgrav
Product
grav
Attack Type
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Attack Complexity
LOW

Narrative and Response

Description

Grav Admin before 2.0.20 fails to sanitize output from marked.parse() before injecting it into the DOM via Svelte's {@html} directive in MarkdownEditor and MarkdownModal components. Attackers can inject javascript: URI schemes in plugin or theme changelogs to execute arbitrary code in authenticated admin sessions without requiring site access.

Executive Summary

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Executive Summary Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Technical Details

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Detailed Technical Analysis Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Mitigations

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Remediation & Mitigations Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

References

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Intelligence References Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Additional Metadata

{
  "score": "5.4",
  "pubDate": "2026-09-04T12:17:23.763Z",
  "pubdate": "2026-09-04T12:17:23.763Z",
  "executiveSummary": "A Cross-Site Scripting (XSS) vulnerability exists in Grav Admin versions prior to 2.0.20, originating from the improper handling of user-supplied input.\nThe vulnerability manifests within the MarkdownEditor and MarkdownModal components, where output generated by marked.parse() is rendered directly into the DOM using Svelte's {@html} directive without prior sanitization.\nSuccessful exploitation allows an authenticated attacker to inject malicious javascript: URI schemes within plugin or theme changelogs.\nWhen a victim with administrative privileges interacts with the affected component, the injected script executes within the context of the user's active session.\nThis vulnerability poses a significant risk to administrative session integrity, potentially allowing an attacker to perform unauthorized administrative actions, exfiltrate sensitive data, or escalate privileges within the Grav environment.\nThe attack requires the adversary to have an authenticated admin session, emphasizing the need for robust input validation and output encoding mechanisms.",
  "technicalDetails": "The root cause of this vulnerability is the insecure use of Svelte's {@html} directive, which bypasses automatic template escaping. In the affected versions of Grav Admin, the MarkdownEditor and MarkdownModal components pass untrusted data processed by the marked.parse() library directly into this directive.\nThe marked.parse() function is designed to convert Markdown into HTML, but it does not inherently sanitize against all forms of malicious URI schemes, particularly when the resulting HTML is rendered without secondary sanitization. By crafting a Markdown payload that includes a javascript: URI—for example, within an anchor tag—an attacker can bypass the intended security controls.\nThe attack flow proceeds as follows: First, an attacker with authenticated administrative access navigates to a section where they can influence the content of a plugin or theme changelog. Second, the attacker inserts a payload containing a javascript: URI scheme, such as <a href='javascript:alert(1)'>Click me</a>, into the Markdown source.\nWhen the MarkdownEditor or MarkdownModal components process this input, they call marked.parse() and subsequently inject the resulting string directly into the DOM via the {@html} directive. Because the directive interprets the content as raw HTML, the browser renders the anchor tag with the executable JavaScript protocol.\nWhen an administrative user views the rendered changelog, clicking the link triggers the execution of the malicious JavaScript payload in the victim's browser. Because the script executes within the context of the authenticated admin session, it inherits the privileges of that user.\nThis behavior facilitates arbitrary code execution in the browser environment, enabling actions such as stealing session cookies, performing unauthorized configuration changes, or installing malicious plugins. As this vulnerability occurs within the admin interface, it inherently requires authentication; however, once inside, it provides a powerful vector for persistent compromise of the administrative interface."
}
CVE-2026-85601: Grav Admin XSS via MarkdownEditor (MEDIUM Severity, CVSS: 5.4) - Sceawere