Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-11832

CVE-2026-11832: Dancer2 OAuth Plugin Auth Bypass Flaw

CVE-2026-11832 is an authentication bypass vulnerability in Dancer2::Plugin::Auth::OAuth for Perl caused by predictable nonce generation. Versions before 0.22 use MD5 hashes of epoch time, enabling attackers to bypass OAuth authentication. This article covers technical details, affected versions, impact, and mitigation steps.

Published:

CVE-2026-11832 Overview

CVE-2026-11832 affects Dancer2::Plugin::Auth::OAuth versions prior to 0.22 for Perl. The plugin generates its default OAuth nonce by computing an MD5 hash of the current epoch time. This produces a predictable value rather than a cryptographically random one, undermining a core OAuth 1.0 replay-protection control defined in RFC 5849 Section 3.3. Attackers who can observe or guess the timestamp window can reproduce valid nonces and bypass replay defenses on signed OAuth requests. The weakness maps to [CWE-338], use of a cryptographically weak pseudo-random number generator.

Critical Impact

Predictable OAuth nonces allow network-based attackers to forge or replay signed OAuth 1.0 requests against applications built with the vulnerable plugin.

Affected Products

  • Dancer2::Plugin::Auth::OAuth for Perl, versions before 0.22
  • Perl web applications built on the Dancer2 framework that rely on this plugin for OAuth 1.0 client flows
  • Downstream CPAN distributions packaging affected releases

Discovery Timeline

  • 2026-06-15 - CVE-2026-11832 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2026-11832

Vulnerability Analysis

The OAuth 1.0 protocol requires each signed request to include a nonce value that is unique for a given timestamp and client credential pair. The nonce exists specifically to prevent replay of previously captured requests, as described in RFC 5849 Section 3.3 and Section 4.9. Dancer2::Plugin::Auth::OAuth versions before 0.22 derive this nonce from md5_hex(time()). The input space is restricted to the current Unix epoch second, and MD5 is fully deterministic. An attacker who knows or guesses the second at which a request was generated can recompute the exact nonce. Combined with the publicly transmitted timestamp parameter, this collapses the nonce search space to a small, enumerable set.

Root Cause

The root cause is selection of a non-cryptographic source of entropy for a security-critical token. MD5 over a low-entropy, attacker-observable value provides no unpredictability. The fix in version 0.22 replaces the default nonce generator with a cryptographically suitable random source. See the MetaCPAN Plugin Change Log for the upstream change.

Attack Vector

Exploitation occurs over the network and does not require privileges or user interaction. An attacker intercepts or observes a signed OAuth 1.0 request, recomputes the nonce from the timestamp, and replays or crafts additional signed requests that the server accepts as fresh. The related record CVE-2025-22376 describes the same class of weakness in adjacent code.

Detection Methods for CVE-2026-11832

Indicators of Compromise

  • Repeated OAuth 1.0 requests from distinct sources sharing identical oauth_nonce and oauth_timestamp values
  • Successful authentication events whose oauth_nonce matches md5_hex(oauth_timestamp) when recomputed offline
  • CPAN inventory entries showing Dancer2::Plugin::Auth::OAuth at a version lower than 0.22

Detection Strategies

  • Inventory all Perl applications and CI build manifests for Dancer2::Plugin::Auth::OAuth and flag any version below 0.22
  • Add a server-side check that rejects OAuth nonces matching the deterministic md5_hex(timestamp) pattern
  • Correlate web access logs to identify reuse of oauth_nonce values within short timestamp windows

Monitoring Recommendations

  • Forward web server and application logs containing OAuth parameters to a centralized analytics platform for nonce-reuse queries
  • Alert on bursts of OAuth 1.0 requests reusing identical signatures, nonces, or timestamps across different client IPs
  • Track outbound requests from Perl services to OAuth providers to detect anomalous replay patterns

How to Mitigate CVE-2026-11832

Immediate Actions Required

  • Upgrade Dancer2::Plugin::Auth::OAuth to version 0.22 or later on all Perl application hosts
  • Audit running Perl processes to confirm the patched module is loaded, not a cached older version
  • Rotate any OAuth consumer secrets that may have been used with the vulnerable nonce generator

Patch Information

The maintainer released Dancer2::Plugin::Auth::OAuth version 0.22, which replaces the default nonce with a cryptographically strong random value. Details are documented in the MetaCPAN Plugin Change Log. Install via cpanm Dancer2::Plugin::Auth::OAuth@0.22 or pin the version in your cpanfile.

Workarounds

  • Override the plugin's nonce generator to use Crypt::URandom or /dev/urandom until you can upgrade
  • Enforce server-side nonce uniqueness with a short-lived cache and reject duplicates regardless of client behavior
  • Restrict OAuth 1.0 endpoints to TLS-only transport to reduce passive observation of timestamps and nonces
bash
# Configuration example: pin the fixed version in cpanfile
requires 'Dancer2::Plugin::Auth::OAuth', '>= 0.22';

# Then install
cpanm --installdeps .

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.