CPANSA-Net-OAuth-2026-72887: Net-OAuth vulnerability
| Publisher | giterlizzi | Document category | csaf_security_advisory |
|---|---|---|---|
| Initial release date | 2026-08-16T00:00:00 | Engine | CSAF Perl Toolkit 0.26 |
| Current release date | 2026-08-16T00:00:00 | Build Date | |
| Current version | 1 | Status | final |
| CVSS v3.1 Base Score | 9.8 | Severity | Critical |
| Original language | Language | en | |
| Also referred to | |||
Vulnerability 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.
Vulnerabilities
CVE-2026-72887
Vulnerability DescriptionNet::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.
| Weakness | CWE-757 : Selection of Less-Secure Algorithm During Negotiation ('Algorithm Downgrade') |
|---|
Product status
Known affected
| Product | Score | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Net-OAuth less than 0.32 |
|
Fixed
- Net-OAuth greater than or equal 0.32
giterlizzi
Namespace: https://github.com/giterlizzi/
gdt@cpan.org
References
- CPANSA-Net-OAuth-2026-72887 JSON self
https://raw.githubusercontent.com/giterlizzi/perl-CPANSA-CSAF/develop/csaf/white/2026/cpansa-net-oauth-2026-72887.json - https://datatracker.ietf.org/doc/html/rfc5849#section-2.1 external
https://datatracker.ietf.org/doc/html/rfc5849#section-2.1 - https://datatracker.ietf.org/doc/html/rfc5849#section-2.3 external
https://datatracker.ietf.org/doc/html/rfc5849#section-2.3 - https://github.com/vurtdev/Net-OAuth/commit/fd505dac1988723ed96721657663f2e4ac731644.patch external
https://github.com/vurtdev/Net-OAuth/commit/fd505dac1988723ed96721657663f2e4ac731644.patch - https://github.com/vurtdev/Net-OAuth/security/advisories/GHSA-jh72-4qq2-8j6g external
https://github.com/vurtdev/Net-OAuth/security/advisories/GHSA-jh72-4qq2-8j6g - https://metacpan.org/release/RRWO/Net-OAuth-0.32/changes external
https://metacpan.org/release/RRWO/Net-OAuth-0.32/changes - http://www.openwall.com/lists/oss-security/2026/08/16/3 external
http://www.openwall.com/lists/oss-security/2026/08/16/3 - CVE-2026-72887 (NVD) external
https://nvd.nist.gov/vuln/detail/CVE-2026-72887
Revision history
| Version | Date of the revision | Summary of the revision |
|---|---|---|
| 1 | Sun Aug 16 00:00:00 2026 | First release |
Sharing rules
TLP:WHITE
For the TLP version see: https://www.first.org/tlp/