Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCapture valid Facebook id_token for target App ID
-
DeliverySubmit token to userFromToken() OIDC endpoint
-
ExploitSignature/aud/iss pass, nonce unchecked
-
ExecutionServer accepts replayed token
-
PersistSession established as victim
-
ImpactUnauthorized victim account access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Replay attack prevention
|
| Exploitation Conditions | Exploitation requires that the target application uses the Facebook provider's Limited Login / OIDC token path (FacebookProvider::userFromToken() → getUserByOIDCToken()) on a Socialite version before 5.29.0, and that the attacker possesses a valid, unexpired Facebook id_token minted for the same Facebook App ID as the target. No authentication and no victim interaction are needed (PR:N/UI:N), so any party who can present such a token to the endpoint succeeds. The limiting factors are: the token must be unexpired and issued for the identical App ID, the app must expose the OIDC/id_token login flow (apps using only the server-side authorization-code exchange are not exposed to this specific replay), and the attacker must first acquire the token out-of-band (reflected in CVSS AC:H) since it cannot be forged. |
| Impact | The CVSS 4.0 vector (AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H, score 9.2) captures both the severity and the one real friction point: PR:N/UI:N means no authentication and no victim interaction, but AC:H reflects that the attacker must first obtain a valid, unexpired id_token issued for the same Facebook App ID - the token is not attacker-generatable, so this is a replay/capture attack rather than a token-forgery attack. That elevates it from theoretical to serious wherever id_tokens can leak (referer headers, logs, proxies, malicious client-side script, or a shared/hostile client). There is no EPSS score, KEV entry, or public POC in the provided data, so real-world exploitation should be treated as plausible-but-unproven rather than active. The signals are internally consistent: a genuinely high-impact account-takeover flaw whose exploitation is gated by token acquisition, not by any server-side defense, so it warrants prompt patching for any app using the Facebook Limited Login / OIDC token path. |
| Exploit ScenarioDerived | An attacker captures a victim's valid, unexpired Facebook id_token - for example from a malicious or compromised client, a leaked log, or an intercepted request - that was issued for the target application's Facebook App ID. The attacker POSTs that token to the application's userFromToken()/OIDC login endpoint; because signature, aud, and iss pass and no nonce is checked, the server establishes an authenticated session as the victim. No public POC is identified, and the practical hurdle is obtaining the token (CVSS AC:H). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Aug 14, 2026
Authentication bypass in Laravel Socialite's Facebook provider (versions before 5.29.0) lets unauthenticated remote attackers replay captured OIDC id_tokens because getUserByOIDCToken() in FacebookProvider.php validates signature, aud, and iss but never checks a session-bound nonce. An attacker holding any valid, unexpired id_token minted for the same Facebook App ID can submit it to the backend's userFromToken() endpoint and be logged in as the victim, achieving full account takeover. Reported by VulnCheck and assigned CVSS 4.0 9.2; no public exploit has been identified at time of analysis and it is not on CISA KEV.
Earlier versions of this analysis (1)
Laravel Socialite's Facebook provider exposes applications using Facebook Limited Login (OIDC) to session replay attacks through the complete absence of nonce validation in getUserByOIDCToken() within FacebookProvider.php. Unauthenticated attackers who possess a captured, unexpired Facebook OIDC id_token can replay it to the application's userFromToken() endpoint and receive a valid authenticated session as the token's original owner, because the provider validates JWT signature, audience, and issuer but performs no session-bound nonce comparison. No public exploit has been identified at time of analysis, and active exploitation is not confirmed by CISA KEV, but the attack requires no specialized tooling beyond an HTTP client and a captured token.
RemediationAI
Vendor-released patch: upgrade Laravel Socialite to 5.29.0 or later (composer require laravel/socialite:^5.29 / composer update laravel/socialite), which is the primary and complete fix - see PR https://github.com/laravel/socialite/pull/789 and commit https://github.com/laravel/socialite/commit/caf714f55d51ab0d914b40033d8b0f489d6219cc. After upgrading, you must actually supply the expected nonce: generate a random nonce, store it in the user's session before redirecting/initiating login, pass it into the Facebook Limited Login request, and provide it to the provider via ->withNonce($nonce) (or a 'nonce' parameter) when calling userFromToken() so getExpectedNonce() can enforce hash_equals() validation - upgrading without wiring the nonce leaves the flow rejecting tokens or unprotected. If you cannot upgrade immediately, a compensating control is to disable the Facebook Limited Login / client-supplied id_token (userFromToken) path and rely on the server-side OAuth authorization-code exchange flow instead, at the cost of breaking native/mobile Limited Login integrations; additionally shorten session/token trust windows and scrub id_tokens from logs, referers, and proxies to reduce replay opportunity. Review the VulnCheck advisory (https://www.vulncheck.com/advisories/laravel-socialite-facebook-provider-authentication-bypass-via-nonce-replay) for guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Laravel Socialite is the standard first-party OAuth/social-login package for the Laravel PHP framework, and this issue lives in its Facebook 'Limited Login' OIDC flow. When a client sends a Facebook id_token (a signed JWT) to the server, FacebookProvider::getUserByOIDCToken() verifies the JWT signature against Facebook's keys and checks the audience (aud, the App ID) and issuer (iss), but the pre-patch code performs no comparison of the token's nonce claim against a value the server generated and bound to the user's session. The root cause is CWE-294 (Authentication Bypass by Capture-replay): the nonce is precisely the OIDC anti-replay control, and omitting its validation means any structurally valid token for the same App ID is accepted regardless of who or which session it was issued to. The fix (PR #789, commit caf714f) adds a withNonce()/getExpectedNonce() mechanism and throws 'Token has incorrect nonce.' via hash_equals() when the expected nonce is absent or mismatched. Affected component per CPE is cpe:2.3:a:laravel:socialite.
Know when Laravel gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
AV:N and PR:N/UI:N since a captured token replays with no auth or interaction, AC:H because the attacker must first obtain a valid unexpired token for the same App ID; account takeover gives C:H/I:H while availability is not directly impacted.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
4DescriptionCVE.org
Laravel Socialite's Facebook provider contains an authentication bypass vulnerability that allows unauthenticated attackers to replay captured OIDC id_tokens by exploiting the missing nonce claim validation in the getUserByOIDCToken() function within FacebookProvider.php. Attackers who obtain a valid, unexpired id_token issued for the same Facebook App ID can submit the captured token to the backend userFromToken() endpoint, bypassing authentication controls because signature, aud, and iss checks pass while no session-bound nonce comparison is performed, resulting in unauthorized access to victim accounts.
Articles & Coverage 1
Executive ViewAI
Laravel Socialite's Facebook authentication provider (versions before 5.29.0) allows unauthenticated attackers to take over user accounts by replaying captured OAuth tokens. Any organization using this component for Facebook login exposes all user accounts to takeover risk, affecting both user identity and organizational data security. While no public exploit has been identified at time of analysis, the attack's simplicity and lack of required authentication necessitate immediate patching.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
In Laravel framework through 5.5.21, remote attackers can obtain sensitive information (such as externally usable passwo
Laravel Livewire v3 through v3.6.3 contains a critical remote code execution vulnerability (CVE-2025-54068, CVSS 9.8) th
LaRecipe versions prior to 2.8.1 contain a Server-Side Template Injection (SSTI) vulnerability that can lead to Remote C
File upload bypass in FreeScout 1.8.206 — patch bypass for CVE-2026-27636. PoC and patch available. CVSS 10.0.
Remote code execution in FreeScout prior to version 1.8.206 allows authenticated users to upload `.htaccess` files that
In Laravel Framework through 5.5.40 and 5.6.x through 5.6.29, remote code execution might occur as a result of an unseri
Dokans SaaS e-commerce platform v3.9.2 has a CVSS 10.0 authentication bypass allowing unauthenticated attackers to obtai
Predictable password reset tokens in FreeScout help desk before 1.8.206. Weak random number generation allows attackers
Bagisto eCommerce platform before 2.3.10 is vulnerable to server-side template injection (SSTI) through customer address
Bagisto eCommerce platform (2.3 branch before 2.3.10) leaves installation API routes active after setup, allowing unauth
A vulnerability was found in laravel 5.1 and classified as problematic. Rated critical severity (CVSS 9.8), this vulnera
Laravel TokenGuard authentication bypass is a genuine high-priority issue, not an inflated CVSS score: unauthenticated a
EUVD-2026-58810
GHSA-cr46-5p72-vh72
NVD
CVE.org
EPSS
VulDB
Exploit-DB