Skip to main content

Laravel Socialite CVE-2026-73683

| EUVDEUVD-2026-58810 CRITICAL
Authentication Bypass by Capture-replay (CWE-294)
2026-08-14 VulnCheck GHSA-cr46-5p72-vh72
9.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Capture valid Facebook id_token for target App ID
  2. Delivery
    Submit token to userFromToken() OIDC endpoint
  3. Exploit
    Signature/aud/iss pass, nonce unchecked
  4. Execution
    Server accepts replayed token
  5. Persist
    Session established as victim
  6. Impact
    Unauthorized 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).

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – 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)
v1 Aug 14, 2026 - 22:02 CVSS 8.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

Socialite 0 <5.29.0

Affected Packages

euvd socialite fix: 5.29.0

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

Vendor (VulnCheck) PRIMARY 9.2 HIGH
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
vuln.today AI 7.4 HIGH

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

4
Analysis Updated
Aug 14, 2026 - 22:28 vuln.today
v2 - CVSS changed
Severity Changed
Aug 14, 2026 - 22:22 NVD
HIGH CRITICAL
CVSS changed
Aug 14, 2026 - 22:22 NVD
8.1 (HIGH) 9.2 (CRITICAL)
CVE Published
Aug 14, 2026 - 21:32 cve.org
HIGH 8.1

DescriptionCVE.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.

Executive ViewAI

Why It Matters

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.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 63% exploitable
Prevalence
High
standard first-party social-login package across the large Laravel PHP ecosystem
Social Media
4
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Very High

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2017-16894 HIGH POC
7.5 Nov 20

In Laravel framework through 5.5.21, remote attackers can obtain sensitive information (such as externally usable passwo

CVE-2025-54068 CRITICAL POC
9.8 Jul 17

Laravel Livewire v3 through v3.6.3 contains a critical remote code execution vulnerability (CVE-2025-54068, CVSS 9.8) th

CVE-2025-53833 CRITICAL POC
10.0 Jul 14

LaRecipe versions prior to 2.8.1 contain a Server-Side Template Injection (SSTI) vulnerability that can lead to Remote C

CVE-2026-28289 CRITICAL POC
10.0 Mar 03

File upload bypass in FreeScout 1.8.206 — patch bypass for CVE-2026-27636. PoC and patch available. CVSS 10.0.

CVE-2026-27636 HIGH POC
8.8 Feb 25

Remote code execution in FreeScout prior to version 1.8.206 allows authenticated users to upload `.htaccess` files that

CVE-2018-15133 HIGH POC
8.1 Aug 09

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

CVE-2025-70841 CRITICAL POC
10.0 Feb 03

Dokans SaaS e-commerce platform v3.9.2 has a CVSS 10.0 authentication bypass allowing unauthenticated attackers to obtai

CVE-2026-27637 CRITICAL POC
9.8 Feb 25

Predictable password reset tokens in FreeScout help desk before 1.8.206. Weak random number generation allows attackers

CVE-2026-21448 CRITICAL POC
9.8 Jan 02

Bagisto eCommerce platform before 2.3.10 is vulnerable to server-side template injection (SSTI) through customer address

CVE-2026-21446 CRITICAL POC
9.8 Jan 02

Bagisto eCommerce platform (2.3 branch before 2.3.10) leaves installation API routes active after setup, allowing unauth

CVE-2022-2870 CRITICAL POC
9.8 Aug 17

A vulnerability was found in laravel 5.1 and classified as problematic. Rated critical severity (CVSS 9.8), this vulnera

CVE-2026-114509 CRITICAL POC
9.2 Oct 21

Laravel TokenGuard authentication bypass is a genuine high-priority issue, not an inflated CVSS score: unauthenticated a

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