md-to-pdf vulnerable to arbitrary JavaScript code execution when parsing front matter
Critical severity
GitHub Reviewed
Published
Nov 20, 2025
in
simonhaenisch/md-to-pdf
•
Updated Nov 25, 2025
Description
Published to the GitHub Advisory Database
Nov 20, 2025
Reviewed
Nov 20, 2025
Published by the National Vulnerability Database
Nov 21, 2025
Last updated
Nov 25, 2025
Summary
A Markdown front-matter block that contains JavaScript delimiter causes the JS engine in gray-matter library to execute arbitrary code in the Markdown to PDF converter process of md-to-pdf library, resulting in remote code execution.
Details
md-to-pdf uses the gray-matter library to parse front-matter. Gray-matter exposes a JavaScript engine that, when enabled or triggered by certain front-matter delimiters (e.g. ---js or ---javascript), will evaluate the front-matter contents as JavaScript. If user-supplied Markdown is fed to md-to-pdf and the front-matter contains malicious JS, the converter process will execute that code.
PoC
Running the PoC on Windows launches the calculator application, demonstrating arbitrary code execution.
Impact
References