Miggo Logo

GHSA-xv3q-jrmm-4fxv: Authentication Bypass in @strapi/plugin-users-permissions

8.2

CVSS Score
3.1

Basic Information

CVE ID
-
EPSS Score
-
CWE
-
Published
4/18/2023
Updated
4/19/2023
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
@strapi/plugin-users-permissionsnpm>= 3.2.1, < 4.6.04.6.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from the unverified JWT processing in the Cognito provider handler. The pre-patch implementation in providers-registry.js:

  1. Extracted the id_token from query parameters
  2. Used jwt.decode() without verification
  3. Returned user credentials based on unvalidated token payload

This allowed forged tokens as there was no:

  • Signature verification using JWKS
  • Algorithm validation (could use 'None')
  • Proof-of-possession check

The commit added proper JWT verification via getCognitoPayload which:

  1. Fetches JWKS keys
  2. Validates token signature
  3. Enforces RS256 algorithm
  4. Verifies token claims

This makes the original cognito function the clear vulnerable entry point.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Summ*ry Str*pi t*rou** *.*.* *o*s not v*ri*y t** ****ss or I* tok*ns issu** *urin* t** O*ut* *low w**n t** *WS *o*nito lo*in provi**r is us** *or *ut**nti**tion. ### **t*ils Str*pi t*rou** *.*.* *o*s not v*ri*y t** ****ss or I* tok*ns issu** *

Reasoning

T** vuln*r**ility st*ms *rom t** unv*ri*i** JWT pro**ssin* in t** *o*nito provi**r **n*l*r. T** pr*-p*t** impl*m*nt*tion in provi**rs-r**istry.js: *. *xtr**t** t** i*_tok*n *rom qu*ry p*r*m*t*rs *. Us** jwt.***o**() wit*out v*ri*i**tion *. R*turn** u