Skip to main content

Net::OAuth CVE-2026-72889

| EUVDEUVD-2026-62347 CRITICAL
Improper Verification of Cryptographic Signature (CWE-347)
2026-08-19 CPANSec
9.8
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify RSA-SHA1 Net::OAuth provider
  2. Delivery
    Craft request naming HMAC-SHA1
  3. Exploit
    Sign with placeholder consumer_secret
  4. Execution
    Submit for target consumer/token
  5. Persist
    verify() validates forged signature
  6. Impact
    Impersonate consumer, access protected resource

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
Exploitation Conditions

Exploitation requires a Service Provider that uses Net::OAuth (before 0.33) to verify() incoming OAuth 1.0 messages without pinning the signature method - which is every pre-0.33 deployment, since no pinning mechanism existed. The fully-guessable, highest-impact path additionally requires the provider to be deployed on RSA-SHA1: because RFC 5849 RSA-SHA1 does not use consumer_secret/token_secret, those fields are non-secret placeholders that the forged HMAC signature is checked against. Symmetric deployments are still downgradable (HMAC-SHA256 → HMAC-SHA1 → PLAINTEXT) but the attacker must still not know the real shared secret, making that path weaker/harder. Limiting factors: no user interaction and no authentication are needed (PR:N/UI:N), but the trivial key-forgery hinges on the RSA-SHA1 (asymmetric) deployment mode; a symmetric-only provider that keeps its secrets confidential is far less exposed.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N, C:H/I:H/A:H = 9.8) reflects unauthenticated, remote, low-complexity forgery, and the CWE-347 root cause and vendor advisory corroborate a genuine authentication-bypass. However, the signals are mixed: EPSS is very low (0.11%, 2nd percentile), the CVE is not in CISA KEV, and no public PoC is referenced, indicating this is not yet mass-exploited. The most severe, fully-guessable case is conditional - it requires a provider deployed on RSA-SHA1 (or a symmetric-to-weaker downgrade), so real-world impact depends on deployment posture rather than being universal. I also differ from the input on availability: this is a forgery/impersonation flaw, so a C:H/I:H/A:N assessment is more defensible than A:H (see assessed vector). Net: a real and high-severity issue warranting prompt patching for any Net::OAuth Service Provider, but current exploitation pressure is low and the worst case is config-dependent, so it is a high - not emergency - priority absent RSA-SHA1 usage.

Exploit ScenarioDerived

An OAuth Service Provider runs Net::OAuth 0.32 configured for RSA-SHA1, holding only each Consumer's public key. An attacker crafts a protected-resource request with oauth_signature_method=HMAC-SHA1 and an HMAC signature computed over the non-secret placeholder consumer_secret, and submits it for any consumer key and token. verify() dispatches on the attacker-chosen method, validates the forged signature, and grants access - no credentials or user interaction required. No public PoC has been identified at time of analysis.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 26, 2026

Signature-verification bypass in the Net::OAuth Perl module before 0.33 lets a remote attacker forge valid OAuth requests for any consumer key and token by dictating which algorithm the Service Provider uses to check their signature. Because verify() resolves the signature-method class from the attacker-supplied signature_method parameter and offers no way to pin an expected method, a provider deployed on RSA-SHA1 (which holds only the consumer's public key) can be tricked into validating an HMAC-SHA1 signature against a placeholder/guessable consumer_secret. No public exploit has been identified at time of analysis and EPSS is low (0.11%), but the flaw is unauthenticated and network-reachable (CVSS 9.8).

RemediationAI

Upgrade to Vendor-released patch: Net::OAuth 0.33 (https://metacpan.org/release/RRWO/Net-OAuth-0.33/changes), which is a deliberate BREAKING change: verify() now croaks unless the verifying party explicitly states acceptable algorithms. After upgrading, you must set the allowed methods or verification will fail closed - pass allowed_signature_methods => [qw/RSA-SHA1/] (or the exact method your Consumers registered with) to every verified message, or set the process-wide default @Net::OAuth::ALLOWED_SIGNATURE_METHODS = qw/HMAC-SHA1/ when verification happens inside a framework/wrapper and you cannot reach each call site; a per-message list overrides the package default. If you cannot upgrade immediately, the compensating control is to enforce a single expected signature method upstream - reject any request whose oauth_signature_method differs from the one your deployment registered (e.g. drop non-RSA-SHA1 requests at a proxy/WAF for an RSA-SHA1 provider); trade-off is that legitimate multi-method Consumers break and this must be applied to every verification entry point. Patch commit: https://github.com/vurtdev/Net-OAuth/commit/c467adf45c8d77ac4b92ad78b3eebf949252ba7f.patch.

Affected ProductsAI

The affected product is the Net::OAuth Perl module (CPAN distribution Net-OAuth, maintainer RRWO/vurtdev) at all versions before 0.33; version 0.33 is the fixed release. The vulnerable code paths are in lib/Net/OAuth/Message.pm and lib/Net/OAuth.pm (verify()/_signature_method_class dispatch). Impact is on the Service Provider (verifying) side; Consumers that only sign are not affected. Vendor advisory: GitHub GHSA-c8rm-g5cm-4pf5 (https://github.com/vurtdev/Net-OAuth/security/advisories/GHSA-c8rm-g5cm-4pf5); tracked as EUVD-2026-62347 and VulDB 392992; reported by CPANSec via oss-security (https://seclists.org/oss-sec/2026/q3/516).

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Net::OAuth implements the OAuth 1.0/1.0a signing and verification primitives (RFC 5849) for Perl Service Providers and Consumers. The root cause is CWE-347 (Improper Verification of Cryptographic Signature): on the verifying side, oauth_signature_method is untrusted network input, yet Net::OAuth::Message dispatched on it to pick the verification class and key-derivation path. RFC 5849 §3.4.2/§3.4.3 define distinct key material for HMAC-SHA1/HMAC-SHA256 (derived from consumer_secret and token_secret) versus RSA-SHA1 (the consumer's RSA public key). An RSA-SHA1 provider never uses consumer_secret, so that field is populated with a non-secret placeholder; letting the sender select HMAC-SHA1 moves verification onto the symmetric path and checks the forged signature against that guessable placeholder. The same mechanism enables weaker symmetric downgrades (HMAC-SHA256 → HMAC-SHA1 → PLAINTEXT). This is effectively an algorithm-confusion / key-confusion attack, structurally identical to the JWT alg-confusion class noted in the input tags.

Know when Jwt Attack gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CPANSec) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.1 CRITICAL

Unauthenticated remote forgery bypasses signature checks (PR:N, C:H/I:H); AC:L as the highest-impact RSA-SHA1 case needs no special timing; A:N because impersonation does not affect availability.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE CRITICAL

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
CVSS changed
Aug 26, 2026 - 19:23 NVD
9.8 (CRITICAL)
CVE Published
Aug 19, 2026 - 07:20 cve.org
CRITICAL 9.8
CVE Published
Aug 19, 2026 - 07:20 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

Net::OAuth Perl module versions before 0.33 contain a critical authentication bypass that allows unauthenticated attackers to forge OAuth authorization requests and access protected APIs and user accounts. Organizations deploying this library for OAuth signature validation require immediate patching to prevent account takeover and unauthorized data access. A vendor patch is available.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche Perl OAuth 1.0 CPAN module, limited enterprise footprint
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2013-3900 MEDIUM
5.5 Dec 11

Why is Microsoft republishing a CVE from 2013? We are republishing CVE-2013-3900 in the Security Update Guide to update

CVE-2026-48558 CRITICAL POC
9.5 Jun 12

Authentication bypass in SimpleHelp 5.5.15 and prior (plus 6.0 pre-release builds) allows remote unauthenticated attacke

CVE-2026-5430 CRITICAL POC
10.0 Aug 06

Authentication bypass in WSO2 API Manager and related components (Universal Gateway, Traffic Manager, API Control Plane,

CVE-2025-59718 CRITICAL
9.8 Dec 09

Authentication bypass in Fortinet FortiOS, FortiProxy, and FortiSwitchManager allows unauthenticated remote attackers to

CVE-2025-25291 CRITICAL POC
9.3 Mar 12

ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS

CVE-2025-25292 CRITICAL POC
9.3 Mar 12

ruby-saml provides security assertion markup language (SAML) single sign-on (SSO) for Ruby. Rated critical severity (CVS

CVE-2022-25898 CRITICAL POC
9.8 Jul 01

The package jsrsasign before 10.5.25 are vulnerable to Improper Verification of Cryptographic Signature when JWS or JWT

CVE-2026-107722 CRITICAL POC
9.8 Oct 08

Authentication and authorization bypass in fast-jwt 6.2.0 through 6.2.4 (npm, NearForm) lets a remote, unauthenticated a

CVE-2024-42004 CRITICAL POC
9.8 Dec 18

A library injection vulnerability exists in Microsoft Teams (work or school) 24046.2813.2770.1094 for macOS. Rated criti

CVE-2024-41145 CRITICAL POC
9.8 Dec 18

A library injection vulnerability exists in the WebView.app helper app of Microsoft Teams (work or school) 24046.2813.27

CVE-2024-41138 CRITICAL POC
9.8 Dec 18

A library injection vulnerability exists in the com.microsoft.teams2.modulehost.app helper app of Microsoft Teams (work

CVE-2024-45409 CRITICAL POC
9.8 Sep 10

The Ruby SAML library is for implementing the client side of a SAML authorization. Rated critical severity (CVSS 9.8), t

Vendor StatusVendor

SUSE

Severity: Critical
Product Status
openSUSE Tumbleweed Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy