Description
Net::OAuth::Client versions before 0.32 for Perl allow the service provider to silently downgrade OAuth 1.0a to OAuth 1.0 in get_request_token.

Passing a callback to the constructor selects OAuth 1.0a. get_request_token then revokes that choice when the request token response omits oauth_callback_confirmed, with no exception, no warning and no option to require 1.0a. The access token request is built from the OAuth 1.0 message class, which has no verifier parameter, so oauth_verifier is dropped from the request even when get_access_token was passed one.

oauth_verifier is the binding that OAuth 1.0a added between the authorization step and the token exchange. An application that asked for 1.0a and gets 1.0 is open to OAuth 1.0 session fixation, where an attacker obtains a request token, has the victim authorize it, and then completes the exchange themselves, linking the victim's provider account to a session the attacker controls. No attacker action sets up the downgrade: a provider that does not confirm the callback is enough.
Published: 2026-08-16
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Net::OAuth::Client module for Perl, prior to version 0.32, silently allows an OAuth provider to downgrade an OAuth 1.0a flow to OAuth 1.0 by ignoring the oauth_callback_confirmed flag. This omission causes the access‑token request to be built without the verifier parameter that binds the authorization step to the token exchange. An attacker who obtains a request token and can have a user authorize it can then complete the exchange themselves, linking the victim’s provider account to the attacker’s session and enabling credential theft and impersonation.

Affected Systems

This vulnerability affects deployments of the Net::OAuth::Client Perl module, versions earlier than 0.32. The module is distributed via CPAN and maintained by the vurtdev community on GitHub.

Risk and Exploitability

The flaw carries high risk because it requires no attacker action beyond using a provider that does not enforce callback confirmation; many providers may unintentionally allow this downgrade. The CVSS score of 9.8 and EPSS score of < 1% indicate a critical severity with low but nonzero exploitation probability. The vulnerability is not listed in the CISA KEV catalog, yet the simplicity of the attack path makes it readily exploitable. Administrators should therefore treat it as a significant threat that can lead to session fixation and credential compromise.

Generated by OpenCVE AI on August 17, 2026 at 18:47 UTC.

Remediation

Vendor Solution

Upgrade to Net-OAuth 0.32 or later.


OpenCVE Recommended Actions

  • Upgrade to Net::OAuth 0.32 or later so the module correctly enforces OAuth 1.0a requirements.
  • Configure the OAuth provider to require the oauth_callback_confirmed flag for all request tokens and to reject tokens that lack this field.
  • If upgrade is pending, audit current services to verify that all provider responses contain oauth_callback_confirmed; temporarily disable legacy OAuth 1.0 flows until the module is updated.

Generated by OpenCVE AI on August 17, 2026 at 18:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 17 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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

ssvc

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


Mon, 17 Aug 2026 11:30:00 +0000

Type Values Removed Values Added
First Time appeared Vurtdev
Vurtdev net-oauth
Vendors & Products Vurtdev
Vurtdev net-oauth

Sun, 16 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
References

Sun, 16 Aug 2026 14:00:00 +0000

Type Values Removed Values Added
Description Net::OAuth::Client versions before 0.32 for Perl allow the service provider to silently downgrade OAuth 1.0a to OAuth 1.0 in get_request_token. Passing a callback to the constructor selects OAuth 1.0a. get_request_token then revokes that choice when the request token response omits oauth_callback_confirmed, with no exception, no warning and no option to require 1.0a. The access token request is built from the OAuth 1.0 message class, which has no verifier parameter, so oauth_verifier is dropped from the request even when get_access_token was passed one. oauth_verifier is the binding that OAuth 1.0a added between the authorization step and the token exchange. An application that asked for 1.0a and gets 1.0 is open to OAuth 1.0 session fixation, where an attacker obtains a request token, has the victim authorize it, and then completes the exchange themselves, linking the victim's provider account to a session the attacker controls. No attacker action sets up the downgrade: a provider that does not confirm the callback is enough.
Title Net::OAuth::Client versions before 0.32 for Perl allow the service provider to silently downgrade OAuth 1.0a to OAuth 1.0 in get_request_token
Weaknesses CWE-757
References

Subscriptions

Vurtdev Net-oauth
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-08-17T16:29:31.019Z

Reserved: 2026-08-10T15:44:58.172Z

Link: CVE-2026-72887

cve-icon Vulnrichment

Updated: 2026-08-16T17:06:04.526Z

cve-icon NVD

Status : Deferred

Published: 2026-08-16T14:16:54.860

Modified: 2026-08-26T16:51:19.490

Link: CVE-2026-72887

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-17T19:00:05Z

Weaknesses
  • CWE-757

    Selection of Less-Secure Algorithm During Negotiation ('Algorithm Downgrade')