{"id":"RUSTSEC-2026-0475","summary":"Buffer overflow in `MdCtxRef::digest_final`","details":"`MdCtxRef::digest_final` passed the caller's output slice to OpenSSL's `EVP_DigestFinal` without checking its length. `EVP_DigestFinal` always writes the full digest (`EVP_MD_CTX_size` bytes), so an output slice shorter than the digest is overrun. With a stack buffer this usually corrupts the stack. The overflow is reachable from safe code.\n\n`MdCtxRef` was added in 0.10.39. 0.10.78 checks the slice length first and returns an error when the slice is too short for the digest.","aliases":["CVE-2026-41681","GHSA-ghm9-cr32-g9qj"],"modified":"2026-11-10T14:00:02.487653947Z","published":"2026-04-19T12:00:00Z","database_specific":{"license":"CC0-1.0"},"references":[{"type":"PACKAGE","url":"https://crates.io/crates/openssl"},{"type":"ADVISORY","url":"https://rustsec.org/advisories/RUSTSEC-2026-0475.html"},{"type":"WEB","url":"https://github.com/rust-openssl/rust-openssl/pull/2608"}],"affected":[{"package":{"name":"openssl","ecosystem":"crates.io","purl":"pkg:cargo/openssl"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.10.39"},{"fixed":"0.10.78"}]}],"ecosystem_specific":{"affects":{"arch":[],"os":[],"functions":["openssl::md_ctx::MdCtxRef::digest_final"]},"affected_functions":null},"database_specific":{"categories":["memory-corruption"],"cvss":null,"source":"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0475.json","informational":null}}],"schema_version":"1.9.2"}