Authen::DigestMD5 Insecure cnonce Generation Vulnerability

Vulnerability

A vulnerability exists in Authen::DigestMD5 versions 0.01 through 0.02 for Perl, where the client nonce (cnonce) is generated insecurely. The cnonce is created from an MD5 hash of the process ID (PID), the epoch time, and the built-in random function. This method is flawed because the PID is drawn from a limited range of values, and the epoch time can be predicted unless it is disclosed in the HTTP Date header. Additionally, the random function used is not suitable for cryptographic purposes. According to RFC 2831, the cnonce should be a random string with at least 64 bits of entropy to prevent chosen plaintext attacks and ensure mutual authentication.

Impact

The vulnerability leads to predictable cnonce values, which can be exploited to perform chosen plaintext attacks, undermining the integrity of the authentication process.

Reproduction

The vulnerability can be reproduced by using Authen::DigestMD5 version 0.01 through 0.02 in a Perl environment. When a DIGEST-MD5 authentication request is made, the cnonce is generated using a combination of the process ID, the current epoch time, and a non-cryptographic random value. This predictable cnonce can then be used to manipulate the authentication process, taking advantage of the chosen plaintext vulnerability.

Added: Sep 1, 2025, 7:22 PM
Updated: Sep 1, 2025, 7:22 PM

Vulnerability Rating

Custom Algorithm
spread
0.0
impact
0.6
exploitability
7.4
remediation
0.0
relevance
0.2
threat
4.8
urgency
2.9
incentive
1.7

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.