Miggo Logo

CVE-2022-31194: JSPUI vulnerable to path traversal in submission (resumable) upload

8.2

CVSS Score
3.1

Basic Information

EPSS Score
0.31528%
Published
8/6/2022
Updated
1/27/2023
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.dspace:dspace-jspuimaven>= 4.0, < 5.115.11
org.dspace:dspace-jspuimaven>= 6.0, < 6.46.4

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from two key areas: 1) In SubmissionController.java, the DoGetResumable method directly used user-controlled 'resumableIdentifier' to construct tempDir paths without canonical path validation. 2) In FileUploadRequest.java, the constructor similarly used untrusted parameters to build file paths. Both locations lacked the critical security check added in the patch (getCanonicalPath().startsWith(baseDir)) to prevent directory traversal. The commit diffs explicitly show these functions were modified to add path validation, confirming they were the vulnerable entry points.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t T** JSPUI r*sum**l* uplo** impl*m*nt*tions in Su*mission*ontroll*r *n* *il*Uplo**R*qu*st *r* vuln*r**l* to multipl* p*t* tr*v*rs*l *tt**ks, *llowin* *n *tt**k*r to *r**t* *il*s/*ir**tori*s *nyw**r* on t** s*rv*r writ**l* *y t** Tom**t/*Sp*

Reasoning

T** vuln*r**ility st*ms *rom two k*y *r**s: *) In `Su*mission*ontroll*r.j*v*`, t** `*o**tR*sum**l*` m*t*o* *ir**tly us** us*r-*ontroll** 'r*sum**l*I**nti*i*r' to *onstru*t `t*mp*ir` p*t*s wit*out **noni**l p*t* v*li**tion. *) In `*il*Uplo**R*qu*st.j*