OS command injection in Markdown Preview Enhanced on Windows
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-78.
Summary
Markdown Preview Enhanced, a Visual Studio Code extension, is affected before 0.8.28. Its preview-link handling passes a Markdown-controlled link target to a Windows helper that runs it through cmd.exe, so shell metacharacters act as command separators (CWE-78). When a Windows user opens an untrusted Markdown file and clicks a crafted link, an attacker can run commands with the privileges of the current VS Code user. One click is enough, and script execution does not need to be enabled.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Update Markdown Preview Enhanced to version 0.8.28 or later.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
- Fix · CNA vscode-markdown-preview-enhanced (shd101wyy) Fixed in 0.8.28
Timeline
- 2026-10-15 Threatist record created from CVE-2026-54525
- 2026-10-16 CISA SSVC decision points changed
- 2026-10-16 Priority changed: MEDIUM → LOW
- 2026-10-16 Priority changed: LOW → MEDIUM
References
Other 7
- https://github.com/shd101wyy/vscode-markdown-preview-enhanced/security/advisories/GHSA-7v6f-3vq6-r373
- https://github.com/shd101wyy/crossnote/pull/442
- https://github.com/shd101wyy/vscode-markdown-preview-enhanced/pull/2318
- https://github.com/shd101wyy/crossnote/commit/5588ca2121c3da43fe331575dc5cf4ef347b91ee
- https://github.com/shd101wyy/vscode-markdown-preview-enhanced/commit/dcd80281c986293b93d9f1af34ced64dcb230c77
- https://github.com/shd101wyy/crossnote/releases/tag/0.9.29
- https://github.com/shd101wyy/vscode-markdown-preview-enhanced/releases/tag/0.8.28
More shd101wyy vulnerabilities
- TI-2025-40425 An issue in Visual Studio Code Extensions Markdown Preview Enhanced v0.8.18 allows… CVSS 3.1HIGH 8.8
- TI-2026-74453 Sandbox escape in Markdown Preview Enhanced allows code execution CVSS 4.0HIGH 8.5
- TI-2026-37396 Markdown Preview Enhanced Arbitrary Code Execution via WaveDrom eval() CVSS 4.0HIGH 8.6
- TI-2026-09857 Markdown Preview Enhanced 0.8.x Code Injection via WaveDrom Rendering CVSS 4.0HIGH 8.4
- TI-2026-74455 Unvalidated command dispatch in Markdown Preview Enhanced extension CVSS 4.0HIGH 7.3
- TI-2026-74454 Cross-site scripting in Markdown Preview Enhanced VS Code extension CVSS 4.0MEDIUM 6.9
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences