Skip to main content

VNote CVE-2026-86016

| EUVDEUVD-2026-100522 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-13 security-advisories@github.com
8.2
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft Markdown note with malicious YAML frontmatter
  2. Delivery
    Deliver note to victim
  3. Exploit
    Victim opens note in VNote viewer
  4. Execution
    innerHTML injection executes stored JavaScript
  5. Impact
    Read 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

vnote < 4.3.0

Affected Packages

euvd vnote fix: 4.3.0

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

Vendor (github) PRIMARY 8.2 HIGH
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N
vuln.today AI 8.2 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:L/VA:N/SC:H/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Oct 13, 2026 - 21:05 EUVD
CVE Published
Oct 13, 2026 - 20:18 cve.org
HIGH 8.2

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Low
niche open-source desktop note-taking app, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy