CVE-2026-86219: Authen::SASL::Perl::DIGEST_MD5 versions before 2.2100 for Perl accept replayed authentication responses via unverified nonce in server_step

Published Sep 6, 2026
·
Updated

Authen::SASL::Perl::DIGESTMD5 versions before 2.2100 for Perl accept replayed authentication responses via unverified nonce in serverstep.

serverstart generates a fresh nonce and sends it in the challenge, and nothing later compares that value against the nonce the client returns. serverstep derives the expected digest from the client's own parameters, so a response verifies whenever its digest matches the nonce it carries. The count table it also checks is keyed on the client-supplied nonce and starts empty in each new server object, so a captured first response, carrying nc=00000001, passes that too. RFC 2831 defines the nonce in the response as the value the server sent in the preceding challenge.

An attacker who observes one successful qop=auth exchange can replay the captured response against a later session for the same service, host, realm and user, and authenticate as that user without knowing the password.

Affected Software

1 affected component
CPAN Authen::SASL::Perl::DIGEST_MD5<2.2100

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Authen::SASL::Perl::DIGEST_MD5 to a version that resolves this vulnerability.

    Fixed in 2.2100

Event History

Sep 6, 2026
CVE Published
via MITRE·05:46 PM
Data Sourced
via MITRE·05:46 PM
RemedyDescriptionWeakness

Frequently Asked Questions

1

What does an attacker need to exploit this issue?

The attacker must observe one successful DIGEST-MD5 authentication exchange using qop=auth. They can then replay the captured response in a later session for the same service, host, realm, and user without knowing that user's password.

2

Which authentication attempts are susceptible to replay?

A captured first response with nc=00000001 can pass replay checks because the count table is keyed by the nonce supplied by the client and begins empty for each new server object. The issue affects versions before 2.2100.

3

Why does a new server challenge not prevent the replay?

Although server_start generates a fresh nonce, server_step does not verify that the nonce returned by the client matches that challenge. It instead calculates the expected digest using client-supplied parameters, allowing a digest to validate against the replayed response's own nonce.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203