EUVD-2026-20970

| CVE-2026-39976 HIGH
2026-04-09 GitHub_M
7.1
CVSS 3.1
Share

CVSS Vector

CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:N
Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
Low
Availability
None

Lifecycle Timeline

3
EUVD ID Assigned
Apr 09, 2026 - 17:15 euvd
EUVD-2026-20970
Analysis Generated
Apr 09, 2026 - 17:15 vuln.today
CVE Published
Apr 09, 2026 - 16:50 nvd
HIGH 7.1

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.

Analysis

Authentication bypass in Laravel Passport 13.0.0-13.7.0 allows machine-to-machine OAuth2 client_credentials tokens to impersonate arbitrary application users. The league/oauth2-server library sets JWT sub claim to client identifier for M2M flows; Passport's token guard fails to validate this identifier represents an actual user before passing to retrieveById(), enabling any M2M token to authenticate as unrelated real users. …

Sign in for full analysis, threat intelligence, and remediation guidance.

Remediation

Within 24 hours: Inventory all Laravel Passport deployments and identify which use client_credentials OAuth2 flows; audit M2M token distribution and access logs for suspicious impersonation patterns. Within 7 days: Implement runtime validation in custom token guard to verify that JWT sub claim matches an actual user before token acceptance; consider rate-limiting or monitoring M2M token usage for anomalous user impersonation attempts. …

Sign in for detailed remediation steps.

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: +0.1
CVSS: +36
POC: 0

Share

EUVD-2026-20970 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy