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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-287"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39976.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "13.0.0"
},
{
"fixed": "13.7.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"cpe": "cpe:2.3:a:laravel:passport:*:*:*:*:*:laravel:*:*",
"range": [
{
"introduced": "13.0.0"
},
{
"fixed": "13.7.1"
}
],
"source": "CPE_RANGE"
}
]
}