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.
Fix
Patch, vendor advisory and mitigation references on NVD 4
- https://github.com/laravel/passport/pull/1901 Issue Tracking, Patch
- https://github.com/laravel/passport/pull/1902 Issue Tracking, Patch
- https://github.com/laravel/passport/security/advisories/GHSA-349c-2h2f-mxf6 Mitigation, Vendor Advisory
- https://github.com/thephpleague/oauth2-server/issues/1456#issuecomment-2734989996 Issue Tracking, Patch
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 7.1 · laravelNVD modified 2026-10-26 21:10
Affected (CPE criteria) 1
cpe:2.3:a:laravel:passport:*:*:*:*:*:laravel:*:*
References 5
- https://github.com/laravel/passport/issues/1900 Exploit, Issue Tracking
- https://github.com/laravel/passport/pull/1901 Issue Tracking, Patch
- https://github.com/laravel/passport/pull/1902 Issue Tracking, Patch
- https://github.com/laravel/passport/security/advisories/GHSA-349c-2h2f-mxf6 Mitigation, Vendor Advisory
- https://github.com/thephpleague/oauth2-server/issues/1456#issuecomment-2734989996 Issue Tracking, Patch