Miggo Logo

CVE-2016-10520: Regular Expression Denial of Service in jadedown

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.55713%
Published
2/18/2019
Updated
9/11/2023
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
jadedownnpm<= 0.0.3

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The PoC demonstrates the vulnerability is triggered by passing malicious input directly to the jadedown() function. While the exact regex patterns aren't visible without source code, the exponential time complexity shown in the PoC results (processing time spiking from nanoseconds to 5 seconds with only 48 characters) strongly indicates the main parsing function contains vulnerable regex patterns. The pattern of 'f's followed by '#'s and '{' likely matches a regex with poor backtracking behavior in the Markdown-to-HTML conversion logic. As jadedown is the primary entry point and no other functions are mentioned in advisories, we conclude the main jadedown function contains the vulnerable regex logic.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

T** `j****own` p**k*** is *****t** *y * r**ul*r *xpr*ssion **ni*l o* s*rvi** vuln*r**ility w**n **rt*in typ*s o* us*r input *r* p*ss** in. ### Proo* o* *on**pt ```js v*r j****own = r*quir*('j****own'); v*r **nstr = *un*tion (l*n, **r) { v*r r*

Reasoning

T** Po* **monstr*t*s t** vuln*r**ility is tri***r** *y p*ssin* m*li*ious input *ir**tly to t** `j****own()` *un*tion. W*il* t** *x**t r***x p*tt*rns *r*n't visi*l* wit*out sour** *o**, t** *xpon*nti*l tim* *ompl*xity s*own in t** Po* r*sults (pro**ss