Impact
The vulnerability occurs when the rust‑openssl crate’s MdCtxRef::digest_final method writes more bytes to the supplied output buffer than the buffer can hold. If the caller passes a buffer smaller than EVP_MD_CTX_size(ctx), the function overwrites adjacent memory, typically corrupting the stack. This overflow is reachable from safe Rust code, meaning an attacker can trigger it without unsafe operations. The stack corruption can lead to arbitrary code execution, denial of service, or other severe impacts depending on how the corrupted stack is used.
Affected Systems
Applications that depend on the rust‑openssl crate between versions 0.10.39 and before 0.10.78 are affected. Any Rust program that links to these releases and calls EVP_DigestFinal or digest_final with an undersized buffer is vulnerable. The issue was fixed in release 0.10.78 and later versions.
Risk and Exploitability
The CVSS score of 8.1 classifies this issue as high severity, but the EPSS score of less than 1% indicates a very low probability of exploitation in the wild. It is not listed in the CISA KEV catalog. The attack vector is inferred to be local or application‑level, as the flaw is reachable through safe Rust code. A malicious actor who controls the data passed to digest_final or the buffer size could exploit the overflow to corrupt memory, which may result in code execution or a crash. No remote exploitation vector is documented in the provided description.
OpenCVE Enrichment
Github GHSA