CVE-2026-72889
Net::OAuth versions before 0.33 for Perl allow the sender to choose the signature algorithm in verify
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 signature_method parameter of the incoming message. signature_method 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 consumer_secret and token_secret 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 consumer_secret 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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
9.8
Net::OAuth versions before 0.33 for Perl allow the sender to choose the signature algorithm in verify
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 signature_method parameter of the incoming message. signature_method 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 consumer_secret and token_secret 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 consumer_secret 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.
- Record
CVE-2026-72889- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-347, CWE-757
- Updated
- 2026-11-02
EUVDEUVD-2026-62347
9.8
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 signature_method parameter of the incoming message. signature_method 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 consumer_secret and token_secret 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 consumer_secret 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.
- Record
EUVD-2026-62347- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
NVD
9.8
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 signature_method parameter of the incoming message. signature_method 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 consumer_secret and token_secret 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 consumer_secret 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.
- Record
CVE-2026-72889- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-347, CWE-757
- Updated
- 2026-11-02
OSV
9.8
Net::OAuth versions before 0.33 for Perl allow the sender to choose the signature algorithm in verify
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 signature_method parameter of the incoming message. signature_method 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 consumer_secret and token_secret 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 consumer_secret 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.
- Record
CVE-2026-72889- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-347, CWE-757
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-72889
9.8
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 signature_method parameter of the incoming message. signature_method 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 consumer_secret and token_secret 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 consumer_secret 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.
- Record
DEBIAN-CVE-2026-72889- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-72889
9.8
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 signature_method parameter of the incoming message. signature_method 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 consumer_secret and token_secret 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 consumer_secret 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.
- Record
UBUNTU-CVE-2026-72889- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVMGASA-2026-0365 No score
Updated perl-Net-OAuth packages fix security vulnerabilities
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 Net::OAuth versions before 0.32 for Perl allow memory exhaustion via unbounded caching of failed module loads in smart_require Net::OAuth versions before 0.33 for Perl allow the sender to choose the signature algorithm in verify Net::OAuth versions before 0.33 for Perl check HMAC-SHA1, HMAC-SHA256 and PLAINTEXT signatures with a non-constant-time comparison in verify
- Record
MGASA-2026-0365- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11551-1 No score
perl-Net-OAuth-0.330.0-1.1 on GA media
These are all security issues fixed in the perl-Net-OAuth-0.330.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11551-1- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
libnet-oauth-perlDebian:12 |
All versions, plus listed versions 0.28-40.30-10.31-10.31-20.32-10.33-1 |
None known |
libnet-oauth-perlDebian:13 |
All versions, plus listed versions 0.31-10.31-20.32-10.33-1 |
None known |
libnet-oauth-perlDebian:14 |
before 0.33-1, plus listed versions 0.31-10.31-20.32-1 |
0.33-1 |
perl-Net-OAuthMageia:10 From an advisory covering 4 CVEs |
before 0.330.0-1.mga10 | 0.330.0-1.mga10 |
perl-Net-OAuthMageia:9 From an advisory covering 4 CVEs |
before 0.330.0-1.mga9 | 0.330.0-1.mga9 |
libnet-oauth-perlUbuntu:16.04:LTS |
All versions, plus listed versions 0.28-2 |
None known |
libnet-oauth-perlUbuntu:18.04:LTS |
All versions, plus listed versions 0.28-2 |
None known |
libnet-oauth-perlUbuntu:20.04:LTS |
All versions, plus listed versions 0.28-3 |
None known |
libnet-oauth-perlUbuntu:22.04:LTS |
All versions, plus listed versions 0.28-3 |
None known |
libnet-oauth-perlUbuntu:24.04:LTS |
All versions, plus listed versions 0.28-4 |
None known |
libnet-oauth-perlUbuntu:26.10 |
All versions, plus listed versions 0.31-10.33-1 |
None known |
libnet-oauth-perlUbuntu:26.04:LTS |
All versions, plus listed versions 0.31-1 |
None known |
perl-Net-OAuthopenSUSE:Tumbleweed From an advisory covering 4 CVEs |
before 0.330.0-1.1 | 0.330.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-72889 is a critical vulnerability (CVSS 9.8) in libnet-oauth-perl, published August 19, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.45%, the 39th percentile. Fixed in libnet-oauth-perl 0.33-1.
References
github.com/vurtdev/Net-OAuth/security/advisories/GHSA-c8rm-g5cm-4pf5
github.com/vurtdev/Net-OAuth/commit/c467adf45c8d77ac4b92ad78b3eebf949252ba7f.patch
metacpan.org/release/RRWO/Net-OAuth-0.33/changes
datatracker.ietf.org/doc/html/rfc5849
openwall.com/lists/oss-security/2026/08/19/2
cpan.org/modules
Show 19 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72889.json
nvd.nist.gov/vuln/detail/CVE-2026-72889
github.com/vurtdev/Net-OAuth
security-tracker.debian.org/tracker/CVE-2026-72889
advisories.mageia.org/MGASA-2026-0365.html
bugs.mageia.org/show_bug.cgi?id=36145
openwall.com/lists/oss-security/2026/08/16/3
github.com/vurtdev/Net-OAuth/security/advisories/GHSA-jh72-4qq2-8j6g
openwall.com/lists/oss-security/2026/08/16/4
github.com/vurtdev/Net-OAuth/security/advisories/GHSA-m2cv-cq5x-47ph
openwall.com/lists/oss-security/2026/08/19/3
github.com/vurtdev/Net-OAuth/security/advisories/GHSA-g8xr-69p3-gw56
ubuntu.com/security/CVE-2026-72889
cve.org/CVERecord?id=CVE-2026-72889
lists.security.metacpan.org/cve-announce/msg/42818761
suse.com/security/cve/CVE-2026-72887
suse.com/security/cve/CVE-2026-72888
suse.com/security/cve/CVE-2026-72889
suse.com/security/cve/CVE-2026-75589