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
# 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.

