Miggo Logo

CVE-2022-29622: Formidable arbitrary file upload

9.8

CVSS Score
3.1

Basic Information

EPSS Score
0.96721%
Published
5/17/2022
Updated
5/1/2024
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

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

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The core vulnerability stems from filename handling in Formidable's parsing logic. The GitHub PR #857 specifically modifies _getExtension to address extension validation, replacing a problematic regex with character-by-character validation. The _getFileName function's handling of quoted filenames and HTML entity decoding (shown in issue #862's test case) could allow crafted filenames to bypass security checks. While the vulnerability is disputed due to Formidable's intended low-level nature, these functions represent the technical root of the alleged vulnerability when used with default/unsafe configurations.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

Wit**r*wn: T*is **visory w*s improp*rly *ssi*n**. *n *r*itr*ry *il* uplo** vuln*r**ility in *ormi***l* v*.*.* *llows *tt**k*rs to *x**ut* *r*itr*ry *o** vi* * *r**t** *il*n*m*.

Reasoning

T** *or* vuln*r**ility st*ms *rom *il*n*m* **n*lin* in *ormi***l*'s p*rsin* lo*i*. T** *it*u* PR #*** sp**i*i**lly mo*i*i*s _**t*xt*nsion to ***r*ss *xt*nsion v*li**tion, r*pl**in* * pro*l*m*ti* r***x wit* ***r**t*r-*y-***r**t*r v*li**tion. T** _**t*