Description
Punk::OAuth2 versions before 0.03 for Perl allow an attacker-chosen off-site redirect after login because same_origin_path accepts a backslash or tab in the return parameter.

oauth2_login reads the return parameter from the initiation request, runs same_origin_path over it, and stores the survivor in the session flow record as the post-login redirect target. That check rejects a value that does not begin with a slash, one with a slash as its second byte, and one containing CR or LF. A backslash and a tab pass. The URL Standard treats a backslash as equivalent to a slash for special schemes, so `/\evil.example` parses with the authority `evil.example`. It also strips ASCII tab before parsing, so a tab between two leading slashes leaves `//evil.example`.

A crafted link to the application's own login route lands the victim on the attacker's site after a genuine authentication. The redirect carries no authorization code or access token.
Published: 2026-08-20
Score: 5.7 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Punk::OAuth2 library versions prior to 0.03 allow an attacker to specify an off-site redirect after a user logs in. The flaw arises because the same_origin_path function accepts a backslash or tab in the return parameter, which is then normally rejected for other characters. The backslash can be interpreted as a slash, and a preceding tab is stripped before parsing, so the resulting URL points to an external domain. Once the login flow reaches the post‑login redirect step, the user is taken to the attacker’s site without any credentials or tokens being sent.

Affected Systems

All deployments of the Punk::OAuth2 Perl library with a version earlier than 0.03. This includes any application that uses the oauth2_login endpoint of Punk::OAuth2 for user authentication and stores the redirect target in the session.

Risk and Exploitability

The vulnerability is an open redirect that can be triggered through a crafted URL that the attacker controls. The CVSS score of 5.7 indicates moderate severity, while the EPSS score of < 1% reflects a low probability of exploitation, and it is not listed in CISA’s KEV catalog. Open redirects are frequently used in phishing campaigns to lure users to malicious sites after authentication. The attack likely requires the attacker to supply a URL containing a malicious return parameter, making the primary attack vector social engineering via a link or embedded form. No privilege escalation or code execution is possible, but the redirect can undermine user trust and facilitate credential theft by redirecting to a fake login page.

Generated by OpenCVE AI on August 28, 2026 at 19:19 UTC.

Remediation

Vendor Solution

Upgrade to Punk-OAuth2 0.03 or later.


Vendor Workaround

For deployments that cannot upgrade to 0.03, strip the return query parameter from requests to the oauth2_login initiation route at the reverse proxy. Logins then use the configured redirect_ok destination.


OpenCVE Recommended Actions

  • Upgrade Punk::OAuth2 to version 0.03 or later.
  • If an upgrade is not possible immediately, configure the reverse proxy to strip or reject the 'return' query parameter on the oauth2_login initiation route so that logins default to a safe destination.
  • Implement a whitelist of allowed redirect URLs or ensure that the redirect target is verified to match the application’s domain before completing the login flow.

Generated by OpenCVE AI on August 28, 2026 at 19:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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

ssvc

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


Fri, 21 Aug 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Punk
Punk oauth2
Vendors & Products Punk
Punk oauth2

Thu, 20 Aug 2026 03:30:00 +0000

Type Values Removed Values Added
References

Thu, 20 Aug 2026 00:45:00 +0000

Type Values Removed Values Added
Description Punk::OAuth2 versions before 0.03 for Perl allow an attacker-chosen off-site redirect after login because same_origin_path accepts a backslash or tab in the return parameter. oauth2_login reads the return parameter from the initiation request, runs same_origin_path over it, and stores the survivor in the session flow record as the post-login redirect target. That check rejects a value that does not begin with a slash, one with a slash as its second byte, and one containing CR or LF. A backslash and a tab pass. The URL Standard treats a backslash as equivalent to a slash for special schemes, so `/\evil.example` parses with the authority `evil.example`. It also strips ASCII tab before parsing, so a tab between two leading slashes leaves `//evil.example`. A crafted link to the application's own login route lands the victim on the attacker's site after a genuine authentication. The redirect carries no authorization code or access token.
Title Punk::OAuth2 versions before 0.03 for Perl allow an attacker-chosen off-site redirect after login because same_origin_path accepts a backslash or tab in the return parameter
Weaknesses CWE-601
References

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-08-28T15:11:53.961Z

Reserved: 2026-08-18T01:18:00.649Z

Link: CVE-2026-75628

cve-icon Vulnrichment

Updated: 2026-08-20T02:25:36.019Z

cve-icon NVD

Status : Deferred

Published: 2026-08-20T01:16:53.803

Modified: 2026-08-28T16:18:25.103

Link: CVE-2026-75628

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T19:30:16Z

Weaknesses
  • CWE-601

    URL Redirection to Untrusted Site ('Open Redirect')