CVE-2026-72889: Net::OAuth versions before 0.33 for Perl allow the sender to choose the signature algorithm in verify

Published Aug 19, 2026
·
Updated

Net::OAuth versions before 0.33 for Perl allow the sender to choose the signature algorithm in verify.

verify resolves the signature method class from the signaturemethod parameter of the incoming message. signaturemethod is required on every request, so the algorithm used to check a signature is chosen by whoever sent it, and nothing lets the verifying party pin the method instead. When a message names HMAC-SHA1 or HMAC-SHA256, the key is derived from consumersecret and tokensecret rather than from the key the provider deployed.

A provider deployed on RSA-SHA1 holds only the consumer public key, and RFC 5849 does not use consumersecret for that method, so the required parameter is filled with a placeholder. A client that names HMAC-SHA1 instead has its signature checked against that placeholder, so a guessable one is enough to forge requests for any consumer key and token.

Affected Software

1 affected component
Net::OAuth<0.33

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Net-OAuth (Perl) to a version that resolves this vulnerability.

    Fixed in 0.33

Event History

Aug 19, 2026
CVE Published
via MITRE·07:20 AM
Data Sourced
via MITRE·07:20 AM
RemedyDescriptionWeakness

Frequently Asked Questions

1

Which deployments are realistically exposed to request forgery?

Providers using RSA-SHA1 verification are exposed if they supply a guessable placeholder consumer_secret, because an attacker can submit a request declaring HMAC-SHA1 or HMAC-SHA256 and have verification use that value instead. The issue can affect requests for any consumer key and token under those conditions.

2

What does an attacker need to exploit this?

The attacker needs to send a signed message that selects HMAC-SHA1 or HMAC-SHA256 through the required signature_method parameter and know or guess the placeholder consumer_secret used by the provider. The description does not identify any additional access prerequisite.

3

How can I determine whether my integration is affected?

Check whether it uses a Net::OAuth release before 0.33 and verifies OAuth requests with RSA-SHA1. Then determine whether consumer_secret is populated with a placeholder and whether that placeholder is guessable.

4

What is the available remediation?

Upgrade Net::OAuth to version 0.33 or later. The provided change information identifies 0.33 as the release addressing versions before it.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203