Description
Dancer2::Plugin::Auth::OAuth::Provider versions before 0.23 for Perl do not support the OAuth 2.0 state parameter.

The authentication_url method builds the provider authorization redirect without issuing a state value, and the callback method exchanges the callback code and registers the resulting token into the session without verifying that the callback corresponds to an authorization request this session initiated.

Any application that uses this plugin for OAuth 2.0 login is exposed to login cross-site request forgery: because the callback is not bound to the session that began the flow, an attacker who starts an authorization with their own provider account can deliver the resulting callback to a victim, causing the victim's session to complete the attacker's authorization and associating the attacker's provider identity and access token with that session. Where the application persists this as an account link, the attacker may retain access to the victim's account through their own provider credentials.
Published: 2026-07-04
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Dancer2::Plugin::Auth::OAuth::Provider plugin fails to generate an OAuth 2.0 state parameter during the authorization redirect and does not validate that a returned callback originates from a request that the local session initiated. This omission permits a login cross‑site request forgery (CSRF) attack, allowing an attacker to complete their own OAuth authorization on a victim's behalf and associate the victim's session with the attacker's provider identity and access token. The weakness is a classic example of CWE‑352.

Affected Systems

Any application that incorporates BIAFRA's Dancer2::Plugin::Auth::OAuth::Provider version 0.22 or earlier for OAuth 2.0 authentication is vulnerable. Systems using this plugin to link user accounts with external OAuth providers are at risk.

Risk and Exploitability

This issue is exploitable through the standard OAuth 2.0 flow over HTTP. The likely attack vector is a remote attacker directing a victim's browser to the application's authorization endpoint and later delivering a crafted callback that binds the attacker's provider account. Because the CVSS score and EPSS score are not reported, and the KEV status indicates the vulnerability is not listed in CISA’s KEV catalog, the precise risk is uncertain, but the lack of state verification represents a low‑effort attack that can compromise session integrity and allow attackers to masquerade as victims.

Generated by OpenCVE AI on July 5, 2026 at 15:53 UTC.

Remediation

Vendor Solution

Upgrade to version 0.23 or later.


OpenCVE Recommended Actions

  • Upgrade Dancer2::Plugin::Auth::OAuth::Provider to version 0.23 or later.
  • Ensure that the OAuth flow now issues a state parameter and that the callback validates it against the initiating session.
  • Review the application’s account linking logic to verify that only authenticated users bind external identities and that no session is linked to an unauthorized provider token.

Generated by OpenCVE AI on July 5, 2026 at 15:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 04 Jul 2026 18:15:00 +0000

Type Values Removed Values Added
Description Dancer2::Plugin::Auth::OAuth::Provider versions before 0.23 for Perl do not support the OAuth 2.0 state parameter. The authentication_url method builds the provider authorization redirect without issuing a state value, and the callback method exchanges the callback code and registers the resulting token into the session without verifying that the callback corresponds to an authorization request this session initiated. Any application that uses this plugin for OAuth 2.0 login is exposed to login cross-site request forgery: because the callback is not bound to the session that began the flow, an attacker who starts an authorization with their own provider account can deliver the resulting callback to a victim, causing the victim's session to complete the attacker's authorization and associating the attacker's provider identity and access token with that session. Where the application persists this as an account link, the attacker may retain access to the victim's account through their own provider credentials.
Title Dancer2::Plugin::Auth::OAuth::Provider versions before 0.23 for Perl do not support the OAuth 2.0 state parameter
Weaknesses CWE-352
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-07-04T19:29:06.345Z

Reserved: 2026-06-19T17:42:35.807Z

Link: CVE-2026-12746

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-05T16:00:06Z

Weaknesses
  • CWE-352

    Cross-Site Request Forgery (CSRF)