Skip to content
Heist/ feed
Back to feed
Critical

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

Type: advisorySources: OSV

Authen::SASL::Perl::DIGEST_MD5 versions before 2.2100 for Perl accept replayed authentication responses via unverified nonce in server_step. server_start generates a fresh nonce and sends it in the challenge, and nothing later compares that value against the nonce the client returns. server_step 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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-86219
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 06:13 UTC · Revision 1

Source evidence

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

core-osv · Original source

Published 6 Sept 2026, 17:46 UTC

Authen::SASL::Perl::DIGEST_MD5 versions before 2.2100 for Perl accept replayed authentication responses via unverified nonce in server_step. server_start generates a fresh nonce and sends it in the challenge, and nothing later compares that value against the nonce the client returns. server_step 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.

osv:CVE-2026-86219
Complete source record
{
  "id": "78895fa4bf00d4cbc1bc0569f90e4ce0651fc0c8a3bbbb68b6ce6dbda4dd046d",
  "url": "https://osv.dev/vulnerability/CVE-2026-86219",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Authen::SASL::Perl::DIGEST_MD5 versions before 2.2100 for Perl accept replayed authentication responses via unverified nonce in server_step",
    "summary": "Authen::SASL::Perl::DIGEST_MD5 versions before 2.2100 for Perl accept replayed authentication responses via unverified nonce in server_step. server_start generates a fresh nonce and sends it in the challenge, and nothing later compares that value against the nonce the client returns. server_step 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.",
    "evidence": "osv:CVE-2026-86219",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-86219",
      "aliases": [
        "CVE-2026-86219"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/perl-authen-sasl/perl-authen-sasl",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "57a740d54087fa822d8660a0c7d823ca5b1217ae"
                },
                {
                  "fixed": "94337367030612842924f697cead29964a96448d"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.2100"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "fixed": "94337367030612842924f697cead29964a96448d"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.2000",
            "v2.1900",
            "v2.1800",
            "v2.1700",
            "v2.16",
            "v2.15",
            "v2.14",
            "v2.13",
            "v2.12",
            "v2.11"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-86219.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.272490548Z",
      "provider": "osv",
      "references": [
        "https://cpan.org/modules",
        "https://datatracker.ietf.org/doc/html/rfc2831#section-2.1.2",
        "https://metacpan.org/release/EHUELS/Authen-SASL-2.2000/source/lib/Authen/SASL/Perl/DIGEST_MD5.pm#L203-222",
        "https://metacpan.org/release/EHUELS/Authen-SASL-2.2000/source/lib/Authen/SASL/Perl/DIGEST_MD5.pm#L410-414",
        "https://www.cve.org/CVERecord?id=CVE-2025-40918",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/86xxx/CVE-2026-86219.json",
        "https://metacpan.org/release/EHUELS/Authen-SASL-2.2100/changes",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-86219",
        "https://github.com/perl-authen-sasl/perl-authen-sasl/commit/94337367030612842924f697cead29964a96448d.patch",
        "https://github.com/perl-authen-sasl/perl-authen-sasl"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-294"
        ],
        "cna_assigner": "CPANSec",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/86xxx/CVE-2026-86219.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-86219",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 492966,
  "published_at": "2026-09-06T17:46:30.34+00:00"
}