Every CVE Search/ Get API key

CVE-2021-29475

PDF export allows arbitrary file reads

10.0 Critical

HedgeDoc (formerly known as CodiMD) is an open-source collaborative markdown editor. An attacker is able to receive arbitrary files from the file system when exporting a note to PDF. Since the code injection has to take place as note content, there fore this exploit requires the attackers ability to modify a note. This will affect all instances, which have pdf export enabled. This issue has been fixed by https://github.com/hedgedoc/hedgedoc/commit/c1789474020a6d668d616464cb2da5e90e123f65 and is available in version 1.5.0. Starting the CodiMD/HedgeDoc instance with CMD_ALLOW_PDF_EXPORT=false or set "allowPDFExport": false in config.json can mitigate this issue for those who cannot upgrade. This exploit works because while PhantomJS doesn't actually render the file:/// references to the PDF file itself, it still uses them internally, and exfiltration is possible, and easy through JavaScript rendering. The impact is pretty bad, as the attacker is able to read the CodiMD/HedgeDoc config.json file as well any other files on the filesystem. Even though the suggested Docker deploy option doesn't have many interesting files itself, the config.json still often contains sensitive information, database credentials, and maybe OAuth secrets among other things.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
None

Exploit likelihood

1.16%Up 0.5 points since Apr 27, 2021
90%50%10%1%

What each source reports

CVE List Score used 10.0

PDF export allows arbitrary file reads

HedgeDoc (formerly known as CodiMD) is an open-source collaborative markdown editor. An attacker is able to receive arbitrary files from the file system when exporting a note to PDF. Since the code injection has to take place as note content, there fore this exploit requires the attackers ability to modify a note. This will affect all instances, which have pdf export enabled. This issue has been fixed by https://github.com/hedgedoc/hedgedoc/commit/c1789474020a6d668d616464cb2da5e90e123f65 and is available in version 1.5.0. Starting the CodiMD/HedgeDoc instance with CMD_ALLOW_PDF_EXPORT=false or set "allowPDFExport": false in config.json can mitigate this issue for those who cannot upgrade. This exploit works because while PhantomJS doesn't actually render the file:/// references to the PDF file itself, it still uses them internally, and exfiltration is possible, and easy through JavaScript rendering. The impact is pretty bad, as the attacker is able to read the CodiMD/HedgeDoc config.json file as well any other files on the filesystem. Even though the suggested Docker deploy option doesn't have many interesting files itself, the config.json still often contains sensitive information, database credentials, and maybe OAuth secrets among other things.

Record
CVE-2021-29475
CVSS 3.1
10.0 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
Weakness
CWE-94, CWE-918
Updated
2026-11-02
EUVDEUVD-2021-16083 10.0

HedgeDoc (formerly known as CodiMD) is an open-source collaborative markdown editor. An attacker is able to receive arbitrary files from the file system when exporting a note to PDF. Since the code injection has to take place as note content, there fore this exploit requires the attackers ability to modify a note. This will affect all instances, which have pdf export enabled. This issue has been fixed by https://github.com/hedgedoc/hedgedoc/commit/c1789474020a6d668d616464cb2da5e90e123f65 and is available in version 1.5.0. Starting the CodiMD/HedgeDoc instance with CMD_ALLOW_PDF_EXPORT=false or set "allowPDFExport": false in config.json can mitigate this issue for those who cannot upgrade. This exploit works because while PhantomJS doesn't actually render the file:/// references to the PDF file itself, it still uses them internally, and exfiltration is possible, and easy through JavaScript rendering. The impact is pretty bad, as the attacker is able to read the CodiMD/HedgeDoc config.json file as well any other files on the filesystem. Even though the suggested Docker deploy option doesn't have many interesting files itself, the config.json still often contains sensitive information, database credentials, and maybe OAuth secrets among other things.

Record
EUVD-2021-16083
CVSS 3.1
10.0 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
Updated
2026-11-03
NVD 10.0

HedgeDoc (formerly known as CodiMD) is an open-source collaborative markdown editor. An attacker is able to receive arbitrary files from the file system when exporting a note to PDF. Since the code injection has to take place as note content, there fore this exploit requires the attackers ability to modify a note. This will affect all instances, which have pdf export enabled. This issue has been fixed by https://github.com/hedgedoc/hedgedoc/commit/c1789474020a6d668d616464cb2da5e90e123f65 and is available in version 1.5.0. Starting the CodiMD/HedgeDoc instance with CMD_ALLOW_PDF_EXPORT=false or set "allowPDFExport": false in config.json can mitigate this issue for those who cannot upgrade. This exploit works because while PhantomJS doesn't actually render the file:/// references to the PDF file itself, it still uses them internally, and exfiltration is possible, and easy through JavaScript rendering. The impact is pretty bad, as the attacker is able to read the CodiMD/HedgeDoc config.json file as well any other files on the filesystem. Even though the suggested Docker deploy option doesn't have many interesting files itself, the config.json still often contains sensitive information, database credentials, and maybe OAuth secrets among other things.

Record
CVE-2021-29475
CVSS 3.1
10.0 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
CVSS 2.0
5.8 MediumAV:N/AC:M/Au:N/C:P/I:P/A:N
Weakness
CWE-94, CWE-918
Updated
2026-11-02
OSV 10.0

HedgeDoc (formerly known as CodiMD) is an open-source collaborative markdown editor. An attacker is able to receive arbitrary files from the file system when exporting a note to PDF. Since the code injection has to take place as note content, there fore this exploit requires the attackers ability to modify a note. This will affect all instances, which have pdf export enabled. This issue has been fixed by https://github.com/hedgedoc/hedgedoc/commit/c1789474020a6d668d616464cb2da5e90e123f65 and is available in version 1.5.0. Starting the CodiMD/HedgeDoc instance with CMD_ALLOW_PDF_EXPORT=false or set "allowPDFExport": false in config.json can mitigate this issue for those who cannot upgrade. This exploit works because while PhantomJS doesn't actually render the file:/// references to the PDF file itself, it still uses them internally, and exfiltration is possible, and easy through JavaScript rendering. The impact is pretty bad, as the attacker is able to read the CodiMD/HedgeDoc config.json file as well any other files on the filesystem. Even though the suggested Docker deploy option doesn't have many interesting files itself, the config.json still often contains sensitive information, database credentials, and maybe OAuth secrets among other things.

Record
CVE-2021-29475
CVSS 3.1
10.0 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
Updated
2026-11-02

Affected products

History

History
RecordedChangedSources
aliasesEUVD
first indexedCVE List, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2021-29475 is a critical vulnerability (CVSS 10.0) in Hedgedoc, published April 26, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.16%, the 67th percentile. No source names a fixed version.

References

MoveEnter Open