Skip to main content

Dancer2-Plugin-Auth-OAuth CVE-2026-12746

| EUVDEUVD-2026-41686 HIGH
Cross-Site Request Forgery (CSRF) (CWE-352)
8.1
CVSS 3.1 · Vendor
Share

Severity by source

Vendor (CNA) PRIMARY
8.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
vuln.today AI
9.3 CRITICAL

Network-delivered, no attacker privileges required (PR:N), but victim must visit crafted URL (UI:R); account takeover crosses scope boundary (S:C) with full confidentiality and integrity loss, no availability impact.

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

Primary rating from Vendor (CNA).

CVSS VectorVendor

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Jul 04, 2026 - 19:01 EUVD
Analysis Generated
Jul 04, 2026 - 18:18 vuln.today

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

AnalysisAI

Login CSRF via a missing OAuth 2.0 state parameter in Dancer2::Plugin::Auth::OAuth::Provider (all versions before 0.23) allows a remote, unauthenticated attacker to associate their own OAuth provider identity and access token with a victim's application session, potentially achieving persistent account takeover. The plugin's authentication_url method never generates a state value, and the callback handler never validates one, leaving the entire authorization flow unbound to the session that initiated it. No public exploit code or active exploitation (CISA KEV) has been identified, but the attack concept is well-understood and described in RFC 6749 §10.12 as a known threat to any OAuth 2.0 implementation omitting state binding.

Technical ContextAI

Dancer2::Plugin::Auth::OAuth is a Perl CPAN distribution that integrates OAuth 2.0 third-party authentication into applications built on the Dancer2 web framework. The OAuth 2.0 Authorization Framework (RFC 6749) mandates that clients generate an opaque, unguessable state value before redirecting users to the authorization server, then verify that value upon receiving the authorization callback - this is the primary CSRF protection mechanism defined in §10.12 of the RFC. The vulnerable plugin's authentication_url method omits state generation entirely, and the callback method accepts any inbound authorization code without verifying it corresponds to a flow this session initiated. The root cause class is CWE-352 (Cross-Site Request Forgery), manifesting as Login CSRF or OAuth callback injection: a variant that does not require the victim to perform any authenticated action in the target application, but instead causes the victim's browser to complete an attacker-controlled authorization flow, permanently associating the attacker's provider credentials with the victim's account.

RemediationAI

Upgrade Dancer2-Plugin-Auth-OAuth to version 0.23 or later via CPAN (cpanm Dancer2::Plugin::Auth::OAuth or cpan Dancer2-Plugin-Auth-OAuth). The fixed release BIAFRA/Dancer2-Plugin-Auth-OAuth-0.23 was published 2026-06-22; the changes are visible at the MetaCPAN diff (https://metacpan.org/release/BIAFRA/Dancer2-Plugin-Auth-OAuth-0.23/diff/BIAFRA/Dancer2-Plugin-Auth-OAuth-0.22) and the underlying patch is at the GitHub commit https://github.com/biafra/perl-Dancer2-Plugin-Auth-OAuth/commit/806420fc2abbe13bede4461475f2f3dcd7daf5f2. If an immediate upgrade is not feasible, the only viable compensating control is to disable OAuth login entirely and require alternative authentication methods (local credentials, SSO via a different mechanism); this eliminates the attack surface completely but removes social login functionality for all users. There is no partial mitigation that preserves OAuth login without implementing the state parameter, because the missing protection is architectural - no WAF rule or network control can substitute for server-side session binding.

Share

CVE-2026-12746 vulnerability details – vuln.today

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