CVE-2026-25647: 
NixOS vulnerability analysis and mitigation

Overview

CVE-2026-25647 is a Stored Cross-Site Scripting (XSS) vulnerability in the Lute Markdown rendering engine (versions 1.7.6 and earlier) as used in the SiYuan note-taking application. Attackers with low-privileged access can inject malicious JavaScript into Markdown notes or text; when another user clicks the rendered content, the script executes in the context of their session. Affected versions include SiYuan up to and including v3.5.4, with v3.5.5 being the first patched release. The vulnerability was published on February 6, 2026, and carries a CVSS v3.1 base score of 5.4 (Medium) (GitHub Advisory, Red Hat CVE).

Technical details

The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically insufficient filtering of dangerous URI schemes within Markdown hyperlink processing. The Lute engine failed to sanitize href attributes during Markdown-to-HTML conversion, allowing attackers to embed javascript: or data: URI schemes in Markdown link syntax (e.g., [Click Me](javascript:alert('XSS'))). The fix, applied in commit 0118e21 of the Lute repository, adds a SanitizeSrc() call within the renderTextMarkAttrs function to strip dangerous URI schemes from link href values before rendering (GitHub Advisory, Lute Patch Commit). A proof-of-concept is publicly documented in the security advisory, referencing known XSS-in-Markdown payloads.

Impact

Successful exploitation allows an attacker to execute arbitrary JavaScript in the browser session of any user who clicks a maliciously crafted Markdown link. This can result in session cookie/token theft, unauthorized actions performed on behalf of the victim (CSRF via XSS), redirection to malicious websites, and DOM manipulation or page defacement. The scope is limited to users of shared or collaborative SiYuan instances where notes created by one user are viewable by others (GitHub Advisory).

Exploitability

A proof-of-concept exploit is publicly available in the GitHub Security Advisory, demonstrating payloads such as [a](javascript:prompt(document.domain)) and [Click Me](javascript:alert('XSS')). There is no evidence of active in-the-wild exploitation at this time. The EPSS score is approximately 0.029% (0.000290), indicating low probability of near-term exploitation. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (GitHub Advisory, Red Hat CVE).

Exploitation steps

  1. Identify a target SiYuan instance: Locate a SiYuan deployment running version 3.5.4 or earlier where multiple users share or view notes.
  2. Authenticate with low-privileged access: Log in to the SiYuan instance with any valid user account (low privileges are sufficient).
  3. Craft a malicious Markdown note: Create or edit a note containing a Markdown hyperlink with a javascript: URI scheme payload, e.g., [Click Me](javascript:alert('XSS')) or [a](javascript:prompt(document.domain)) (GitHub Advisory).
  4. Share or expose the note: Ensure the malicious note is accessible to the target victim user (e.g., in a shared workspace or published page).
  5. Wait for victim interaction: When the victim user views the rendered note and clicks the hyperlink, the injected JavaScript executes in their browser session context.
  6. Harvest results: The executed script can exfiltrate session tokens, perform actions as the victim, or redirect them to an attacker-controlled site.

Indicators of compromise

  • Logs: SiYuan access logs showing note creation or editing events containing URL-encoded javascript: or data: strings in link fields; unusual API calls to note-editing endpoints from low-privileged accounts followed by access from other accounts.
  • File System: Markdown note files (.sy or similar) containing hyperlinks with javascript: or data: URI schemes in href attributes.
  • Network: Outbound requests from victim browsers to unexpected external domains shortly after interacting with SiYuan note content; exfiltration of cookies or tokens via HTTP GET parameters to attacker-controlled servers.
  • Process/Application: Browser console errors or unexpected JavaScript execution events triggered from within the SiYuan frontend renderer when rendering note content.

Mitigation and workarounds

Upgrade SiYuan to version 3.5.5 or later, which incorporates the patched Lute engine that sanitizes dangerous URI schemes in Markdown link href attributes (GitHub Advisory, Lute Patch Commit). As a workaround prior to patching, restrict note creation/editing permissions to trusted users only and avoid sharing notes from untrusted sources. Additionally, implementing a strict Content Security Policy (CSP) that blocks javascript: URI execution can reduce the impact of any residual XSS vectors. Review existing notes for suspicious Markdown hyperlinks containing javascript: or data: URI schemes.

Additional resources


Source: This report was generated using AI

Related NixOS vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-103678HIGH8.1
  • NixOS logoNixOS
  • tnef
NoNoOct 01, 2026
CVE-2026-103680MEDIUM6.5
  • NixOS logoNixOS
  • tnef
NoNoOct 01, 2026
CVE-2026-103679MEDIUM6.5
  • NixOS logoNixOS
  • tnef
NoNoOct 01, 2026
CVE-2026-103497MEDIUM5.5
  • YouTrack logoYouTrack
  • cpe:2.3:a:jetbrains:youtrack
NoYesOct 01, 2026
CVE-2026-103496MEDIUM5.4
  • YouTrack logoYouTrack
  • youtrack
NoYesOct 01, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management