Skip to main content

rust-openssl CVE-2026-41677

LOW
Out-of-bounds Read (CWE-125)
2026-04-22 https://github.com/rust-openssl/rust-openssl GHSA-xmgf-hq76-4vx2
1.7
CVSS 4.0 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain password callback control
  2. Delivery
    Supply malicious callback returning oversized length
  3. Exploit
    Trigger PEM load operation
  4. Execution
    Over-read buffer memory
  5. Impact
    Exfiltrate adjacent data

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an application that: (1) uses rust-openssl's *_from_pem_callback APIs to load encrypted PEM keys, (2) accepts a password callback from a source the attacker can influence or control. If the password callback is hardcoded or provided only by trusted application code, the vulnerability is not exploitable. No special OpenSSL configuration is required - the flaw exists in the default callback validation logic. The vulnerability does NOT affect applications using non-callback PEM loading methods or OpenSSL 3.x.

Impact

This is an information disclosure vulnerability with moderate real-world risk. The attack surface is narrower than typical remote code execution flaws because exploitation requires either: (1) an application that accepts user-controlled password callbacks, or (2) compromise of the password callback implementation itself. CVSS data is unavailable (marked N/A), preventing direct vector analysis, but CWE-125 (out-of-bounds read) typically results in CVSS scores in the 5.5-7.5 range depending on attack vector and privileges required. The vulnerability is confirmed by a vendor patch and advisory from the rust-openssl project (GitHub GHSA-xmgf-hq76-4vx2), indicating acknowledgment of real impact. The absence of CVSS and EPSS scores, combined with this being a Rust binding issue rather than a widespread OpenSSL client vulnerability, suggests this affects a smaller population than headline OpenSSL CVEs, but applications using rust-openssl with untrusted password callbacks remain at risk of memory disclosure.

Exploit ScenarioDerived

An application using rust-openssl to load encrypted PEM private keys with a user-supplied password callback is exploited when the callback is controlled by an attacker (e.g., via deserialized untrusted data or a compromised library). The attacker crafts a callback that returns a length value significantly larger than the actual buffer, causing the OpenSSL library to read adjacent memory. The attacker can then infer secrets (private key material, session data) from the disclosed memory contents.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Apr 23, 2026

Buffer over-read in rust-openssl's password callback APIs allows information disclosure when a user-supplied callback returns a value larger than the provided buffer. The vulnerability affects rust-openssl bindings to OpenSSL 1.x and 2.x; OpenSSL 3.x implementations are not vulnerable. An attacker who controls the password callback can read sensitive data from adjacent memory regions.

RemediationAI

Update rust-openssl to version 0.10.78 or later immediately. This version includes the fix (commit 5af6895c907773699f37f583f409b862284062b1) that validates callback return lengths. Applications should also review password callback implementations to ensure they do not return values exceeding the provided buffer size. If immediate patching is not feasible, restrict the use of password callbacks to trusted code paths only and avoid accepting password callbacks from untrusted sources. The GitHub advisory at https://github.com/rust-openssl/rust-openssl/security/advisories/GHSA-xmgf-hq76-4vx2 contains detailed guidance.

Affected Packages

cargo openssl fix: 0.10.78

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in cargo

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The rust-openssl crate provides Rust bindings to OpenSSL for cryptographic operations. The *_from_pem_callback APIs accept user-defined password callbacks to decrypt PEM-formatted private keys. The underlying issue is insufficient validation of the length value returned by these callbacks before reading from the caller-supplied buffer. This is a classic buffer over-read (CWE-125) where the callback return value is not bounds-checked against the actual buffer size, allowing reads beyond allocated memory. OpenSSL 3.x fixed this in the native library itself, but rust-openssl versions wrapping OpenSSL 1.x and 2.x inherit the vulnerability.

Know when OpenSSL gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

GitHub Advisory PRIMARY 1.7 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N/E:U

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
CVSS changed
Apr 24, 2026 - 18:22 NVD
1.7 (LOW)
Patch released
Apr 22, 2026 - 21:46 nvd
Patch available
CVE Published
Apr 22, 2026 - 21:20 nvd
LOW 1.7

DescriptionGitHub Advisory

The *_from_pem_callback APIs did not validate the length returned by the user's callback. A password callback that returns a value larger than the buffer it was given can cause some versions of OpenSSL to over-read this buffer. OpenSSL 3.x is not affected by this.

Threat Intelligence Overview

EPSS Score
0.1%
Top 75% exploitable
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

8
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +8
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)GitHub Advisory

pkg:rust/openssl
CVE-2014-0160 HIGH POC
7.5 Apr 07

The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe

CVE-2021-3711 CRITICAL POC
9.8 Aug 24

In order to decrypt SM2 encrypted data an application is expected to call the API function EVP_PKEY_decrypt(). Rated cri

CVE-2014-0195 MEDIUM POC
6.8 Jun 05

The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2016-0800 MEDIUM POC
5.9 Mar 01

The SSLv2 protocol, as used in OpenSSL before 1.0.1s and 1.0.2 before 1.0.2g and other products, requires a server to se

CVE-2015-0204 MEDIUM POC
4.3 Jan 09

The ssl3_get_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8zd, 1.0.0 before 1.0.0p, and 1.0.1 before 1.0.1k

CVE-2022-2068 HIGH
7.3 Jun 21

In addition to the c_rehash shell command injection identified in CVE-2022-1292, further circumstances where the c_rehas

CVE-2015-4000 LOW POC
3.7 May 21

The TLS protocol 1.2 and earlier, when a DHE_EXPORT ciphersuite is enabled on a server but not on a client, does not pro

CVE-2014-3566 LOW POC
3.4 Oct 15

The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other products, uses nondeterministic CBC padding, which mak

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

CVE-2015-1793 MEDIUM POC
6.5 Jul 09

The X509_verify_cert function in crypto/x509/x509_vfy.c in OpenSSL 1.0.1n, 1.0.1o, 1.0.2b, and 1.0.2c does not properly

CVE-2022-3602 HIGH
7.5 Nov 01

A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Rated hig

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy