GHSA-xv3q-jrmm-4fxv: Authentication Bypass in @strapi/plugin-users-permissions
8.2
CVSS Score
3.1
Basic Information
CVE ID
-
GHSA ID
EPSS Score
-
CWE
-
Published
4/18/2023
Updated
4/19/2023
KEV Status
No
Technology
JavaScript
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
@strapi/plugin-users-permissions | npm | >= 3.2.1, < 4.6.0 | 4.6.0 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from the unverified JWT processing in the Cognito provider handler. The pre-patch implementation in providers-registry.js:
- Extracted the id_token from query parameters
- Used jwt.decode() without verification
- 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:
- Fetches JWKS keys
- Validates token signature
- Enforces RS256 algorithm
- Verifies token claims
This makes the original cognito function the clear vulnerable entry point.