Miggo Logo

CVE-2024-36128:
Directus is soft-locked by providing a string value to random string util

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.63157%
Published
6/4/2024
Updated
6/4/2024
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

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

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

Both functions handle the random string generation endpoint and shared the same vulnerability pattern: 1) Missing type validation for the 'length' parameter allowed non-integer inputs 2) Direct conversion using Number() without validation produced NaN 3) Passing invalid values to nanoid corrupted application state. The commit diff shows both locations received validation fixes (Joi schema in utils.ts, bounds check in graphql.ts), confirming these were the vulnerable entry points.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### **s*ri** t** *u* Provi*in* * non-num*ri* l*n*t* v*lu* to t** r*n*om strin* **n*r*tion utility will *r**t* * m*mory issu* *r**kin* t** **p**ility to **n*r*t* r*n*om strin*s pl*t*orm wi**. T*is *r**t*s * **ni*l o* s*rvi** situ*tion w**r* lo**** in

Reasoning

*ot* *un*tions **n*l* t** r*n*om strin* **n*r*tion *n*point *n* s**r** t** s*m* vuln*r**ility p*tt*rn: *) Missin* typ* v*li**tion *or t** 'l*n*t*' p*r*m*t*r *llow** non-int***r inputs *) *ir**t *onv*rsion usin* Num**r() wit*out v*li**tion pro*u*** N*