CVE-2026-54566: Markdown Preview Enhanced code execution via untrusted config.js

CVE-2026-54566 · Severity: info · Published 2026-10-14

Markdown Preview Enhanced is a preview extension for Visual Studio Code that renders Markdown files. When opening a Markdown file from a malicious repository, the extension automatically loads and executes repository-controlled configuration and parser files without proper security isolation, allowing an attacker to run arbitrary operating-system commands with the victim's privileges without any user interaction beyond opening the file.

Technologies: Shd101wyy Markdown Preview Enhanced. Vendors: Shd101wyy.

Quick answers

Is CVE-2026-54566 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-54566 being exploited in the wild.
How severe is CVE-2026-54566?
Informational severity, published 14 October 2026.
Which products and versions are affected?
Shd101wyy Markdown Preview Enhanced before 0.8.29.
Is there a fix for CVE-2026-54566?
Yes: fixed in 0.8.29. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-54566 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-54566?
Check whether you run Shd101wyy Markdown Preview Enhanced at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: 0.8.29

Technical details

The vulnerability exists in the evaluation of .crossnote/config.js and .crossnote/parser.js files using vm.runInNewContext() and sval, neither of which provides a security boundary from the Node.js host realm. Attackers can use prototype-chain traversal via ({}).constructor.constructor to reach the host Function constructor and access the process object, achieving remote code execution simply by a user opening a Markdown file in a malicious repository. The fix isolates these files in a QuickJS WebAssembly sandbox with separate realm and intrinsics, preventing access to host globals and process.

Affected products

  • shd101wyy Markdown Preview Enhanced before 0.8.29

Timeline

  • 2026-10-14: disclosed
  • 2026-06-06: patched: Fix released in version 0.9.30 with QuickJS WebAssembly sandbox

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.