Vulnerability MediumRUSTSEC-2022-0026 · openssl-src
RUSTSEC-2022-0026: Incorrect MAC key used in the RC4-MD5 ciphersuite
Short answerA security vulnerability in the openssl-src crate: Incorrect MAC key used in the RC4-MD5 ciphersuite. Medium severity (CVSS 5.9). Fixed in 300.0.6: update to a fixed version.
| Crate | openssl-src |
|---|---|
| Type | Vulnerability (crypto-failure) |
| Affected versions | From 300.0.0 before 300.0.6. |
| Fixed in | 300.0.6 |
| Severity | Medium, CVSS 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N |
| Published | 2022-05-03 |
| Last changed | 2023-11-08 |
| Also known as | CVE-2022-1434, GHSA-638m-m8mh-7gw2 |
What to do
- See which version you have:
cargo tree -i openssl-src(it also shows which of your dependencies pulls it in). - Update within your version requirement:
cargo update -p openssl-src. If the fix is a newer major or minor than your requirement allows, raise it in Cargo.toml (for exampleopenssl-src = "300.0.6") or update the dependency that pulls it in. - Check again with
cargo audit, or paste your Cargo.lock into our Cargo.toml checker.
Details from the advisory
The OpenSSL 3.0 implementation of the RC4-MD5 ciphersuite incorrectly uses the AAD data as the MAC key. This makes the MAC key trivially predictable.
An attacker could exploit this issue by performing a man-in-the-middle attack to modify data being sent from one endpoint to an OpenSSL 3.0 recipient such that the modified data would still pass the MAC integrity check.
Note that data sent from an OpenSSL 3.0 endpoint to a non-OpenSSL 3.0 endpoint will always be rejected by the recipient and the connection will fail at that point. Many application protocols require data to be sent from the client to the server first. Therefore, in such a case, only an OpenSSL 3.0 server would be impacted when talking to a non-OpenSSL 3.0 client.
If both endpoints are OpenSSL 3.0 then the attacker could modify data being sent in both directions. In this case both clients and servers could be affected, regardless of the application protocol.
Note that in the absence of an attacker this bug means that an OpenSSL 3.0 endpoint communicating with a non-OpenSSL 3.0 endpoint will fail to complete the handshake when using this ciphersuite.
The confidentiality of data is not impacted by this issue, i.e. an attacker cannot decrypt data that has been encrypted using this ciphersuite - they can only modify it.
In order for this attack to work both endpoints must legitimately negotiate the RC4-MD5 ciphersuite. This ciphersuite is not compiled by default in OpenSSL 3.0, and is not available within the default provider or the default ciphersuite list. This ciphersuite will never be used if TLSv1.3 has been negotiated. In order for an OpenSSL 3.0 endpoint to use this ciphersuite the following must have occurred:
1. OpenSSL must have been compiled with the (non-default) compile time option enable-weak-ssl-ciphers 2. OpenSSL must have had the legacy provider explicitly loaded (either through application code or via configuration) 3. The ciphersuite must have been explicitly added to the ciphersuite list 4. The libssl security level must have been set to 0 (default is 1) 5. A version of SSL/TLS below TLSv1.3 must have been negotiated 6. Both endpoints must negotiate the RC4-MD5 ciphersuite in preference to any others that both endpoints have in common
References
- Package: crates.io/crates/openssl-src
- Advisory: rustsec.org/advisories/RUSTSEC-2022-0026.html
- Web: www.openssl.org/news/secadv/20220503.txt
From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.
Other advisories for openssl-src
- Vulnerability HighRUSTSEC-2020-0015 · 2020-04-25Crash causing Denial of Service attack
- Vulnerability MediumRUSTSEC-2021-0055 · 2021-05-01NULL pointer deref in signature_algorithms processing
- Vulnerability HighRUSTSEC-2021-0056 · 2021-05-01CA certificate check bypass with X509_V_FLAG_X509_STRICT
- Vulnerability HighRUSTSEC-2021-0057 · 2021-05-01Integer overflow in CipherUpdate
- Vulnerability MediumRUSTSEC-2021-0058 · 2021-05-01Null pointer deref in `X509_issuer_and_serial_hash()`
- Vulnerability CriticalRUSTSEC-2021-0097 · 2021-08-24SM2 Decryption Buffer Overflow
- Vulnerability HighRUSTSEC-2021-0098 · 2021-08-24Read buffer overruns processing ASN.1 strings
- VulnerabilityRUSTSEC-2021-0129 · 2021-12-14Invalid handling of `X509_verify_cert()` internal errors in libssl
Up next
Same crateopenssl-src: security historyEvery advisory for this crate, and whether it is safe to use today.Read it next →Did this answer your question?