Miggo Logo

CVE-2023-38493: Paths contain matrix variables bypass decorators

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.38915%
Published
7/25/2023
Updated
11/5/2023
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
com.linecorp.armeria:armeriamaven<= 1.24.21.24.3

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from how matrix variables were handled in request paths. The key functions are DefaultRequestTarget.forServer (which processes incoming paths) and RequestTarget.path (which returns the path for matching). Before the patch, these functions did not strip matrix variables from the path used for decorator matching. The commit adds matrix variable removal logic in DefaultRequestTarget and introduces RequestTarget.maybePathWithMatrixVariables to handle Spring's requirements, while ensuring decorators see the normalized path. The vulnerable versions lacked this sanitization, allowing path-based decorators to be bypassed via matrix variable injection.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t Sprin* supports [M*trix v*ri**l*s](*ttps://*o*s.sprin*.io/sprin*-*r*m*work/r***r*n**/w**/w**mv*/mv*-*ontroll*r/*nn-m*t*o*s/m*trix-v*ri**l*s.*tml). W**n Sprin* int**r*tion is us**, *rm*ri* **lls Sprin* *ontroll*rs vi* `Tom**tS*rvi**` or `J*

Reasoning

T** vuln*r**ility st*ms *rom *ow m*trix v*ri**l*s w*r* **n*l** in r*qu*st p*t*s. T** k*y *un*tions *r* `****ultR*qu*stT*r**t.*orS*rv*r` (w*i** pro**ss*s in*omin* p*t*s) *n* `R*qu*stT*r**t.p*t*` (w*i** r*turns t** p*t* *or m*t**in*). ***or* t** p*t**,