VNote: Stored XSS via YAML frontmatter leads to local file read and exfiltration
Summary
VNote, a Markdown note-taking application, inserts YAML frontmatter metadata into the page using innerHTML before its sanitization runs. A crafted Markdown note can therefore execute JavaScript in the local file:// viewer context. Because local content may access remote URLs, the script can read reachable local note files and send them to a remote server once the note is opened.
Affected
- VNote versions before 4.3.0
- Versions before 4.2.0: unknown
Fixed in
- VNote 4.3.0 (fix commit 7371efd)
Workaround
- No vendor workaround known. Upgrade to 4.3.0 or later.
Exploitation
- CISA SSVC: exploitation status 'poc' (proof of concept available), not automatable.
- No evidence of in-the-wild exploitation or CISA KEV listing found; recheck before closing.
Our recommendation
- Update VNote to 4.3.0 or a later release on all workstations.
- Identify installations and prioritise systems that handle sensitive data or open notes from external sources, shared notebooks or third-party Git-synced notebooks.
- Do not open untrusted Markdown notes until the update is applied.
- Monitor for unusual outbound connections from the VNote process.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- Fix commit 7371efd github.com
- VNote release v4.3.0 github.com
- GitHub Security Advisory GHSA-vfhj-c636-h59x github.com
- OSV: CVE-2026-86016 osv.dev
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 16:30.
Original description (NVD)
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.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
