Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted untrusted Markdown file to victim
-
DeliveryVictim opens file in VS Code preview
-
ExploitVictim clicks crafted external-scheme link
-
Executionstart command passes decoded target to cmd.exe
-
ImpactShell metacharacters execute attacker command as user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation is limited to Windows hosts running Markdown Preview Enhanced (crossnote) prior to 0.8.28 (crossnote 0.9.29), because the flaw depends on the Windows file-opening helper invoking child_process.exec with the start command through cmd.exe. The required trigger is concrete: the victim must open an attacker-controlled untrusted Markdown file in the preview and then click a crafted external or unsupported-scheme link whose decoded target contains shell metacharacters (e.g., command separators). Notably, the description explicitly states the attack does NOT require malicious workspace configuration/trust, does NOT require script execution to be enabled, and does NOT require any additional files - a single normal preview-link click suffices. The practical limiting factors defenders can rely on are the Windows-only platform dependency, the requirement for user interaction (opening the file and clicking the link), and the need for the user to be handling untrusted Markdown content. |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H, base 8.8) rates this high, driven by full confidentiality/integrity/availability impact from arbitrary command execution. However, the signals are mixed when assessed against real-world risk. The vector lists AV:N and PR:N (no authentication), but UI:R is the dominant limiter: exploitation requires a victim to open an attacker-supplied untrusted Markdown file AND click a crafted preview link - this is user-driven, social-engineering-dependent exploitation rather than remote drive-by. The flaw is also Windows-only (it depends on the Windows start-command helper invoking cmd.exe), which materially narrows the exposed population. No EPSS score, CISA KEV listing, or public POC was provided in the input, so exploitation status is 'no public exploit identified at time of analysis'; no SSVC decision data was supplied either. Net: this is a legitimately serious code-execution bug worth prompt patching for Windows developers who handle untrusted Markdown, but it is not wormable or mass-exploitable internet-facing. Note the tension to verify: CVSS encodes AV:N yet the description implies attacker content must be locally opened and a link clicked, so the effective attack surface is closer to a document-based/local-interaction vector than true network exploitation. |
| Exploit ScenarioDerived | An attacker distributes a seemingly benign Markdown file (for example a README in a shared repo or an emailed document) containing a link whose decoded target embeds Windows shell metacharacters. A Windows developer opens the file in Markdown Preview Enhanced's preview and clicks the crafted external/unsupported-scheme link, causing the start command to pass the target through cmd.exe and run the attacker's command with the user's privileges. No public exploit code was identified at the time of analysis, and no workspace trust, enabled scripts, or additional files are required. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Command injection in the Markdown Preview Enhanced VS Code extension (which bundles the crossnote library) on Windows allows an attacker-controlled Markdown link to execute arbitrary commands with the privileges of the VS Code user. When a victim opens an untrusted Markdown file, previews it, and clicks a crafted external or unsupported-scheme link, the decoded link target is passed to a Windows file-opening helper that invokes child_process.exec with the start command, so embedded cmd.exe metacharacters are interpreted as command separators. The flaw affects versions prior to 0.8.28 (crossnote prior to 0.9.29), requires user interaction (opening the file and one link click), needs no workspace trust, no script execution, and no additional files, and earns a CVSS 3.1 base score of 8.8; no public exploit code was identified at time of analysis and the issue is not in CISA KEV.
RemediationAI
Vendor-released patch: upgrade Markdown Preview Enhanced to 0.8.28 or later, which also pulls in the fixed crossnote 0.9.29, via the VS Code Marketplace or the release page at https://github.com/shd101wyy/vscode-markdown-preview-enhanced/releases/tag/0.8.28; the fix removes the shell from preview link/file opening and passes untrusted values as literal arguments or validates them before use. If immediate upgrade is not possible, the practical compensating control is behavioral and platform-scoped: do not open or preview untrusted Markdown files on Windows installations of the extension, and do not click external or unsupported-scheme links rendered in the preview of such files, since a single ordinary link click is sufficient to trigger execution. A secondary option is to run the extension only in VS Code's web/browser environment or on a non-Windows host where the vulnerable Windows helper path is not reached; the trade-off is loss of native file-opening and desktop integration features. Enforcing workspace trust does not help here, because the advisory confirms the attack does not require malicious workspace configuration, script execution, or additional files. Confirm remediation by verifying the installed extension version reports 0.8.28 or higher, and cross-reference the vendor advisory at https://github.com/shd101wyy/vscode-markdown-preview-enhanced/security/advisories/GHSA-7v6f-3vq6-r373 and the hardening commits https://github.com/shd101wyy/vscode-markdown-preview-enhanced/commit/dcd80281c986293b93d9f1af34ced64dcb230c77 and https://github.com/shd101wyy/crossnote/commit/5588ca2121c3da43fe331575dc5cf4ef347b91ee.
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-78 (OS Command Injection): a Markdown-controlled, URL-decoded link target is forwarded to a Windows file-opening helper that shells out via child_process.exec invoking the cmd.exe 'start' command. Because the target string is concatenated into a shell command line rather than passed as a literal argument, shell metacharacters in the decoded value (e.g., command separators) are interpreted by cmd.exe, letting the attacker append an arbitrary command that runs in the context of the current VS Code user. The technology stack is the VS Code extension host (Node.js child_process) on Windows plus the extension's preview-link handling code in the crossnote package, which Markdown Preview Enhanced consumes as a library. Exploitation is platform-bound: the vulnerable path depends on the Windows file-opening helper and cmd.exe, so Linux and macOS hosts are not exposed via this specific route. The 0.8.28/0.9.29 release hardens this by removing the shell from external file/link opening and passing untrusted inputs (diagram 'filename' attribute, imported file paths, and the 'latex_engine' code-chunk attribute) as literal arguments or validating them before use. The same release also closed separate eval-based code execution paths in the WaveDrom renderer and the Bitfield renderer's interpretJS/vm.runInNewContext usage, but those are distinct weaknesses from this command-injection CVE.
Know when Windows gets its next vulnerability
- 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:U/C:H/I:H/A:H
Attacker content is delivered as a document (AV:N) with no auth (PR:N) but needs the victim to open it and click a link (UI:R); shell injection yields full code execution as the user, so C/I/A:H and S:U.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
Markdown Preview Enhanced is a Markdown preview extension for Visual Studio Code. Prior to 0.8.28, Markdown Preview Enhanced preview-link handling passes a decoded, Markdown-controlled link target to a Windows file-opening helper that invokes child_process.exec with the start command. When a Windows user opens an untrusted Markdown file and clicks a crafted external or unsupported-scheme link, shell metacharacters in the decoded target are interpreted by cmd.exe as command separators, allowing an attacker-selected command to run with the privileges of the current VS Code user. The attack requires one normal preview-link click but does not require malicious workspace configuration, script execution to be enabled, or additional files. This issue is fixed in version 0.8.28.
Technical POC Analysis
CWE-78 (OS Command Injection).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity command injection flaw in the Markdown Preview Enhanced extension for Visual Studio Code on Windows can let an attacker-controlled Markdown link execute arbitrary commands with the developer's privileges. No public exploit identified at time of analysis, but the attack requires only opening an untrusted Markdown file and clicking a crafted link, so affected Windows developer workstations are at risk of credential theft, unauthorized access, or malware execution. Leadership should prioritize mitigation because the extension is widely used in developer workflows and no vendor-released patch identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations include disabling or uninstalling Markdown Preview Enhanced on Windows developer endpoints, blocking the extension through VS Code extension management policy, preventing users from opening untrusted Markdown files in VS Code preview, restricting or monitoring cmd.exe and start child-process execution, and providing user awareness guidance not to click links in untrusted Markdown previews.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Unauthenticated remote code execution in SmarterTools SmarterMail lets an attacker upload arbitrary files to any locatio
Windows Win32k fails to properly handle objects in memory, allowing local privilege escalation exploited in the wild in
A privilege escalation vulnerability (CVSS 5.5). Risk factors: actively exploited (KEV-listed), EPSS 94% exploitation pr
Windows Internet Shortcut Files (.url) contain an external control vulnerability (CVE-2025-33053, CVSS 8.8) that enables
Windows SMB contains an improper access control vulnerability (CVE-2025-33073, CVSS 8.8) enabling authenticated attacker
Twonky Server 8.5.2 on Linux and Windows allows unauthenticated access to the admin log file through a web service API b
An unrestricted file upload vulnerability exists in MiniWeb HTTP Server <= Build 300 that allows unauthenticated remote
FreeFloat FTP Server contains multiple critical design flaws that allow unauthenticated remote attackers to upload arbit
Serviio Media Server versions 1.4 through 1.8 on Windows contain an unauthenticated command injection in the /rest/actio
Twonky Server 8.5.2 uses hard-coded cryptographic keys for encrypting the administrator password. Combined with the cred
Mako Server versions 2.5 and 2.6 contain an unauthenticated OS command injection via the tutorial interface at examples/
React Native Metro Development Server binds to external interfaces by default and contains an OS command injection endpo
EUVD-2026-101581
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB