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: 8.1 High
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 the OAuth 2.0 state parameter during the authorization redirect and does not bind the callback to the session that began the flow. This omission permits a login cross‑site request forgery (CSRF) attack where an attacker can cause a victim’s session to complete the attacker’s OAuth authorization, linking the attacker’s provider identity and access token to the victim’s session. The weakness is a classic example of CWE‑352.

Affected Systems

Any application that incorporates BIAFRA's Dancer2::Plugin::Auth::OAuth::Provider version before 0.23 for Perl is vulnerable. Systems using this plugin for OAuth 2.0 login, especially those that persist external identities in user accounts, are at risk.

Risk and Exploitability

Based on the description, it is inferred that a remote attacker can manipulate a victim’s browser to follow the attacker’s authorization request and later deliver a crafted callback that binds the victim’s session to the attacker’s provider account. The CVSS score of 8.1 indicates a high severity level, while the EPSS score of < 1% shows a low probability of exploitation at this time. The vulnerability is listed as Login Cross‑Site Request Forgery (CWE‑352) and could lead to session hijacking or unauthorized account linkage. The lack of KEV listing suggests the vulnerability has not yet been observed in the wild.

Generated by OpenCVE AI on July 26, 2026 at 21:46 UTC.

Remediation

Vendor Solution

Upgrade to version 0.23 or later.


OpenCVE Recommended Actions

  • Upgrade Dancer::Provider to version 0.23 or later.
  • Ensure the OAuth flow now issues a state parameter and that the callback validates it against the initiating session.
  • Review the application 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 26, 2026 at 21:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 06 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


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-06T14:56:03.698Z

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

Link: CVE-2026-12746

cve-icon Vulnrichment

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

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-26T22:00:05Z

Weaknesses
  • CWE-352

    Cross-Site Request Forgery (CSRF)