Markdownify 1.4.1 - Local File Read

Summary

NameMarkdownify 1.4.1 - Local File Read
Code nameNoisestorm
ProductBadaso
Affected versionsVersion 1.4.1
StatePublic
Release date2022-10-18

Vulnerability

KindInsecure or unset HTTP headers - Content-Security-Policy
Rule043. Insecure or unset HTTP headers - Content-Security-Policy
RemoteYes
CVSSv3 VectorCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
CVSSv3 Base Score5.5
Exploit availableYes
CVE ID(s)CVE-2022-41710

Description

Markdownify version 1.4.1 allows an external attacker to remotely obtain arbitrary local files on any client that attempts to view a malicious markdown file through Markdownify. This is possible because the application does not have a CSP policy (or at least not strict enough) and/or does not properly validate the contents of markdown files before rendering them.

Vulnerability

This vulnerability occurs because the application does not have a CSP policy (or at least not strict enough) and/or does not properly validate the contents of markdown files before rendering them. Because of the above, an attacker can embed malicious JS code in a markdown file and send it to the victim to view and thus achieve an exfiltration of their local files.

Exploitation

To exploit this vulnerability, you must send the following file to a user to open with Markdownify.

exploit.md

<img src="1" onerror='fetch("file:///etc/private").then(data => data.text()).then(leak => alert(leak));'/>

Evidence of exploitation

LFR-Markdownify

Our security policy

We have reserved the CVE-2022-41710 to refer to this issue from now on.

System Information

  • Version: Markdownify 1.4.1

  • Operating System: GNU/Linux

Mitigation

There is currently no patch available for this vulnerability.

Credits

The vulnerability was discovered by Carlos Bello from Fluid Attacks' Offensive Team.

References

Vendor page https://github.com/amitmerchant1990/electron-markdownify

Timeline

Time-lapse-logo

2022-09-28

Vulnerability discovered.

Time-lapse-logo

2022-09-28

Vendor contacted.

Time-lapse-logo

2022-09-28

Vendor replied acknowledging the report.

Time-lapse-logo

2022-10-18

Public Disclosure.