CVE-2026-107161

Description

A heap-based buffer overflow flaw was found in Cyrus SASL. The add_to_challenge() function in the DIGEST-MD5 plugin computes the size of the buffer needed for a challenge/response field before DIGEST-MD5 quoting is applied, but does not recompute that size when quoting (escaping special characters) makes the value longer. The under-sized buffer is then passed to strcat(), causing a heap-based out-of-bounds write whose size depends on attacker-controlled input. A malicious or on-path DIGEST-MD5 (or HTTP Digest) server can trigger this flaw in a connecting client by supplying a crafted challenge field, such as realm or nonce, most likely resulting in a crash of the client application.

Statement

The DIGEST-MD5 SASL mechanism affected by this flaw was declared Historic by RFC 6331 and has since been removed entirely from the current Cyrus SASL upstream codebase. It remains present in released versions shipped by Red Hat. Exploitation requires a client to authenticate using DIGEST-MD5 (or HTTP Digest, which shares the same code path) against a malicious or on-path server. The directly demonstrated impact is a client-side crash (denial of service); code execution has not been demonstrated and would depend on allocator state and heap layout. Given the deprecated status of the affected mechanism, the need for a malicious or on-path server, and that only a denial-of-service impact has been demonstrated, this flaw is rated Moderate rather than Important.

Mitigation

If DIGEST-MD5 authentication is not strictly required, remove the optional cyrus-sasl-md5 package to eliminate the vulnerable plugin:

# dnf remove cyrus-sasl-md5

Alternatively, configure client applications to disable DIGEST-MD5 and HTTP Digest authentication methods, prioritizing stronger mechanisms such as GSSAPI or SCRAM.

Caveat: Removing cyrus-sasl-md5 removes support for both DIGEST-MD5 and CRAM-MD5 mechanisms. Any client or server process depending on these algorithms will fail to negotiate authentication. Active services utilizing SASL may need to be restarted to unload the plugin from memory.

Common Vulnerability Scoring System (CVSS) Score Details

Info alert:Important note

CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).

The following CVSS metrics and score provided are preliminary and subject to review.

CVSS v3 Score Breakdown

Red HatNVDcve.org
Base Score7.5N/A7.5
Attack VectorNetworkN/ANetwork
Attack ComplexityHighN/AHigh
Privileges RequiredNoneN/ANone
User InteractionRequiredN/ARequired
ScopeUnchangedN/AUnchanged
ConfidentialityHighN/AHigh
Integrity ImpactHighN/AHigh
Availability ImpactHighN/AHigh

Vector

Red Hat: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H

cve.org: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H

Understanding the Weakness (CWE)

Availability

Technical Impact: DoS: Crash, Exit, or Restart; DoS: Resource Consumption (CPU); DoS: Resource Consumption (Memory)

Buffer overflows generally lead to crashes. Other attacks leading to lack of availability are possible, including putting the program into an infinite loop.

Integrity,Confidentiality,Availability,Access Control

Technical Impact: Execute Unauthorized Code or Commands; Bypass Protection Mechanism; Modify Memory

Buffer overflows often can be used to execute arbitrary code, which is usually outside the scope of a program's implicit security policy. Besides important user data, heap-based overflows can be used to overwrite function pointers that may be living in memory, pointing it to the attacker's code. Even in applications that do not explicitly use function pointers, the run-time will usually leave many in memory. For example, object methods in C++ are generally implemented using function pointers. Even in C programs, there is often a global offset table used by the underlying runtime.

Integrity,Confidentiality,Availability,Access Control,Other

Technical Impact: Execute Unauthorized Code or Commands; Bypass Protection Mechanism; Other

When the consequence is arbitrary code execution, this can often be used to subvert any other security service.

Acknowledgements

This issue was discovered by Bruno Fournier and Found by AISLE in partnership with Red Hat.

Frequently Asked Questions

Want to get errata notifications? Sign up here.