Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft Markdown note with malicious YAML frontmatter
-
DeliveryDeliver note to victim
-
ExploitVictim opens note in VNote viewer
-
ExecutioninnerHTML injection executes stored JavaScript
-
ImpactRead and exfiltrate local note files to remote server
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the victim to open an attacker-supplied Markdown note in VNote prior to 4.3.0, where the note contains crafted YAML frontmatter metadata that is inserted via preNode.innerHTML before the protectFromXss sanitization runs. The exfiltration capability specifically depends on the Qt setting QWebEngineSettings::LocalContentCanAccessRemoteUrls being enabled (the app's default), which lets the injected script in the file:// context read reachable local note files and send them to a remote server. Limiting factors: no code executes until the user actively opens the malicious note (UI:R), and impact is scoped to files reachable from the viewer context; there is no remote code execution against a running instance without the victim opening the crafted file. |
| Impact | The input CVSS 3.1 vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N, base 8.2 High) describes an unauthenticated (PR:N), low-complexity stored XSS that requires user interaction (UI:R - the victim must open a malicious note) and achieves a scope change (S:C) because injected script in the file:// viewer escapes the note-rendering context to read other local files and exfiltrate them to a remote server. The source-code evidence (commit 7371efde changing preNode.innerHTML to preNode.textContent) confirms the root cause and the fix, raising confidence in the technical description. However, no EPSS score was provided, the vulnerability is NOT in CISA KEV, and no public POC is indicated - so there is no evidence of active or widespread exploitation. The UI:R requirement plus the need to socially deliver a crafted Markdown file substantially lowers real-world mass-exploitation risk compared to a drive-by network bug; this is better characterized as a targeted/social-engineering vector than an internet-wide threat. Note a tension in the vector: AV:N is assigned although exploitation fundamentally depends on a victim locally opening a delivered file in a desktop application, which is arguably closer to local delivery - treat the AV:N rating with caution. Overall: a legitimate High-severity data-exfiltration bug in a niche desktop app, but prioritize based on whether VNote is actually deployed and users handle untrusted notes, rather than the raw 8.2 alone. |
| Exploit ScenarioDerived | An attacker crafts a Markdown note containing malicious JavaScript inside its YAML frontmatter metadata and shares it with a target (e.g., via a note repository, email, or shared drive). When the victim opens the note in VNote prior to 4.3.0, the unsanitized innerHTML assignment executes the script in the file:// viewer context, which then reads reachable local note files and transmits their contents to an attacker-controlled server. No public exploit is identified at time of analysis, but the one-line root cause is low-complexity and well-documented in the vendor commit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Stored cross-site scripting in VNote versions prior to 4.3.0 allows remote attackers to execute JavaScript in the file:// viewer context when a victim opens a crafted Markdown note containing malicious YAML frontmatter. The injected script can read reachable local note files and exfiltrate their contents to a remote server because Qt's QWebEngineSettings::LocalContentCanAccessRemoteUrls is enabled by default, though exploitation requires the user to open the note (UI:R) and no public exploit was identified at time of analysis. The issue is fixed in 4.3.0.
RemediationAI
Upgrade to VNote 4.3.0 or later; this is the vendor-released patch and the fixing commit changes the vulnerable innerHTML assignment to textContent. The advisory is https://github.com/vnotex/vnote/security/advisories/GHSA-vfhj-c636-h59x and the fixed release is https://github.com/vnotex/vnote/releases/tag/v4.3.0. If immediate upgrade is not possible, avoid opening untrusted or unsolicited Markdown notes, and consider disabling or restricting Qt WebEngine's LocalContentCanAccessRemoteUrls setting if your deployment can tolerate the side effect of breaking legitimate remote resource loading in notes. There is no other vendor workaround identified; the primary remediation is the 4.3.0 upgrade.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation / Cross-site Scripting). VNote's Markdown rendering pipeline in src/data/extra/web/js/markdownit.js assigns YAML frontmatter metadata to preNode.innerHTML before the protectFromXss sanitization path executes, so attacker-controlled frontmatter is interpreted as HTML rather than text. The upstream fix commit 7371efde531312eb24beb982fb5fdd73469cb171 changes this assignment to preNode.textContent, which treats the metadata as inert text. The viewer runs inside Qt WebEngine with a file:// origin; when QWebEngineSettings::LocalContentCanAccessRemoteUrls is enabled, as it is by default according to the assessment, script executed in that context can read local files reachable from the viewer and send their contents to a remote server. The assessed CVSS vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N indicates network-delivered, low-complexity, unauthenticated exploitation that requires victim interaction and causes a scope change because the injected script escapes the note-rendering context. Affected version data from EUVD lists vnote < 4.3.0.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N
Crafted note delivered/opened over network with no auth (AV:N/PR:N) but needs the victim to open it (UI:R); script escapes the viewer to read other local files (S:C/C:H), with limited integrity and no availability impact.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
VNote is a note-taking platform. Prior to 4.3.0, VNote uses the assignment preNode.innerHTML = p_metaData in src/data/extra/web/js/markdownit.js to insert YAML frontmatter metadata into a pre element before the protectFromXss sanitization path runs. Opening an attacker-supplied Markdown note can therefore execute stored JavaScript in the file:// viewer context. Because QWebEngineSettings::LocalContentCanAccessRemoteUrls enables local content to access remote URLs, the script can read reachable local note files and transmit their contents to a remote server without further interaction after the note is opened. This issue is fixed in version 4.3.0.
Technical POC Analysis
CWE-79 (Improper Neutralization of Input During Web Page Generation).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
VNote, a note-taking application used by organizations, contains a stored cross-site scripting vulnerability in versions prior to 4.3.0 that enables attackers to exfiltrate sensitive local note files when a user opens a maliciously crafted note. This could lead to unauthorized disclosure of confidential information stored in notes, affecting any employee using the vulnerable versions. Leadership should prioritize immediate patching to 4.3.0 to prevent data loss and potential regulatory compliance issues.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2026-100522
NVD
CVE.org
EPSS
GitHub
Exploit-DB