Laravel Passport's TokenGuard Authenticates Unrelated User for Client Credentials Tokens
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| laravel | passport | affected |
|
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Laravel | Passport |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-349c-2h2f-mxf6 | Laravel Passport: TokenGuard Authenticates Unrelated User for Client Credentials Tokens |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.294% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| CPEs | cpe:2.3:a:laravel:passport:*:*:*:*:*:laravel:*:* |
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Laravel
Laravel passport |
|
| Vendors & Products |
Laravel
Laravel passport |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Laravel Passport provides OAuth2 server support to Laravel. From 13.0.0 to before 13.7.1, there is an Authentication Bypass for client_credentials tokens. the league/oauth2-server library sets the JWT sub claim to the client identifier (since there's no user). The token guard then passes this value to retrieveById() without validating it's actually a user identifier, potentially resolving an unrelated real user. Any machine-to-machine token can inadvertently authenticate as an actual user. This vulnerability is fixed in 13.7.1. | |
| Title | Laravel Passport's TokenGuard Authenticates Unrelated User for Client Credentials Tokens | |
| Weaknesses | CWE-287 | |
| References |
| |
| Metrics |
cvssV3_1
|