Miggo Logo

CVE-2023-38507:
Strapi Improper Rate Limiting vulnerability

7.3

CVSS Score
3.1

Basic Information

EPSS Score
0.48818%
Published
9/13/2023
Updated
11/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:L/I:L/A:L
Package NameEcosystemVulnerable VersionsFirst Patched Version
@strapi/adminnpm< 4.12.14.12.1
@strapi/plugin-users-permissionsnpm< 4.12.14.12.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from how the rate limit key is constructed in line 31 of rateLimit.js. The key uses ctx.request.path directly without normalization, making different path variations (case differences, trailing slashes) count as separate rate limit buckets. The middleware's failure to normalize the path before using it in the prefixKey allows attackers to bypass rate limits by manipulating URL casing/path structure.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### *. Summ*ry T**r* is * r*t* limit on t** lo*in *un*tion o* Str*pi's **min s*r**n, *ut it is possi*l* to *ir*umv*nt it. ### *. **t*ils It is possi*l* to *voi* t*is *y mo*i*yin* t** r*t*-limit** r*qu*st p*t* *s *ollows. *. M*nipul*tin* r*qu*st p*t*

Reasoning

T** vuln*r**ility st*ms *rom *ow t** r*t* limit k*y is *onstru*t** in lin* ** o* r*t*Limit.js. T** k*y us*s *tx.r*qu*st.p*t* *ir**tly wit*out norm*liz*tion, m*kin* *i***r*nt p*t* v*ri*tions (**s* *i***r*n**s, tr*ilin* sl*s**s) *ount *s s*p*r*t* r*t*