CVE-2019-9844: simple-markdown cross-site scripting in link handling

CVE-2019-9844 · Severity: low · CVSS 3 · Published 2019-04-09

simple-markdown is a lightweight JavaScript library for rendering markdown text to HTML. Versions prior to 0.4.4 fail to properly sanitize markdown links containing data: or vbscript: URIs, allowing attackers to inject malicious JavaScript that executes when the rendered HTML is viewed. This can lead to session hijacking, credential theft, or defacement depending on the context in which the markdown is rendered and displayed.

Technologies: simple-markdown (npm). Vendors: npm.

Quick answers

Is CVE-2019-9844 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2019-9844 being exploited in the wild.
How severe is CVE-2019-9844?
Low severity, with a CVSS score of 3, published 9 April 2019.
Which products and versions are affected?
simple-markdown (npm) SEMVER:introduced=0,fixed=0.4.4.
Is there a fix for CVE-2019-9844?
Yes. simple-markdown (npm): upgrade to 0.4.4 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2019-9844 attacked?
It is attacked over the network.
Am I affected by CVE-2019-9844?
Check whether you run simple-markdown (npm) 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

  • simple-markdown (npm): upgrade to 0.4.4 or later
    npm install simple-markdown@0.4.4

Technical details

The vulnerability is a Cross-Site Scripting (CWE-79) flaw in simple-markdown's link parsing and output generation. When processing markdown link syntax (e.g., `[text](url)`), the library fails to validate or block dangerous URI schemes such as data: and vbscript:. An attacker can craft markdown containing a link with a data: URI containing base64-encoded HTML and JavaScript (e.g., `[link](data:text/html;base64,PHNjcmlwdD5...)`), which is rendered as valid HTML. The vulnerability requires user interaction (opening/rendering the markdown) and network delivery of the malicious markdown, but no authentication. The patch, released in version 0.4.4, adds validation to reject data: and vbscript: URI schemes in link targets.

Affected products

  • Khan Academy simple-markdown prior to 0.4.4

Identifiers

  • CVE-2019-9844
  • GHSA-qj3f-9gmq-fwv5

Timeline

  • 2019-04-09: disclosed: Advisory published
  • 2019-03-14: patched: Fix merged (version 0.4.4 released)

References

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