Miggo Logo

CVE-2021-39880: apollo_upload_server has Denial of Service vulnerability

6.5

CVSS Score
3.1

Basic Information

EPSS Score
0.58976%
CWE
-
Published
5/24/2022
Updated
3/27/2023
KEV Status
No
Technology
TechnologyRuby

Technical Details

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

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from improper array index handling in the GraphQL data builder. The commit diff shows the vulnerable version used 'field[splited_path.last.to_i] = wrapped_file' without validation. The patched version adds strict index validation (verify_array_index!) and integer parsing (parse_array_index) to prevent out-of-bounds writes. The HackerOne report demonstrates how crafted 'map' parameters with large indices could force the server to generate massive error responses, confirming this function's role in the vulnerability.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

* **ni*l O* S*rvi** vuln*r**ility in t** *pollo_uplo**_s*rv*r Ru*y **m in *itL** **/** v*rsion **.** *n* **ov* *llows *n *tt**k*r to **ny ****ss to *ll us*rs vi* sp**i*lly *r**t** r*qu*sts to t** *pollo_uplo**_s*rv*r mi**l*w*r*.

Reasoning

T** vuln*r**ility st*ms *rom improp*r *rr*y in**x **n*lin* in t** *r*p*QL **t* *uil**r. T** *ommit *i** s*ows t** vuln*r**l* v*rsion us** '*i*l*[split**_p*t*.l*st.to_i] = wr*pp**_*il*' wit*out v*li**tion. T** p*t**** v*rsion ***s stri*t in**x v*li**t
CVE-2021-39880: GitLab Apollo Upload Server DoS | Miggo