LiveActive security incident?Get immediate response
CVE Record

CVE-2021-4044: Invalid handling of X509_verify_cert() internal errors in libssl

Internally libssl in OpenSSL calls X509_verify_cert() on the client side to verify a certificate supplied by a server. That function may return a negative return value to indicate an internal error (for example out of memory). Such a negative return value is mishandled by OpenSSL and will cause an IO function (such as SSL_connect() or SSL_do_handshake()) to not indicate success and a subsequent call to SSL_get_error() to return the value SSL_ERROR_WANT_RETRY_VERIFY. This return value is only supposed to be returned by OpenSSL if the application has previously called SSL_CTX_set_cert_verify_callback(). Since most applications do not do this the SSL_ERROR_WANT_RETRY_VERIFY return value from SSL_get_error() will be totally unexpected and applications may not behave correctly as a result. The exact behaviour will depend on the application but it could result in crashes, infinite loops or other similar incorrect responses. This issue is made more serious in combination with a separate bug in OpenSSL 3.0 that will cause X509_verify_cert() to indicate an internal error when processing a certificate chain. This will occur where a certificate does not include the Subject Alternative Name extension but where a Certificate Authority has enforced name constraints. This issue can occur even with valid chains. By combining the two issues an attacker could induce incorrect, application dependent behaviour. Fixed in OpenSSL 3.0.1 (Affected 3.0.0).

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

OpenSSL 3.0.0 can mishandle some certificate verification internal errors during outbound TLS connections. Applications may then crash, loop, or otherwise respond incorrectly. The issue is application-dependent and fixed in OpenSSL 3.0.1.

Executive priority

Treat this as a targeted maintenance and dependency hygiene issue, not an emergency based on available evidence. Upgrade any OpenSSL 3.0.0 usage promptly because failures can affect availability and reliability.

Technical view

libssl client-side certificate verification can mishandle a negative X509_verify_cert() return, causing SSL_get_error() to return unexpected SSL_ERROR_WANT_RETRY_VERIFY. In OpenSSL 3.0.0, a separate certificate-chain bug can trigger this path with certain name-constraint and Subject Alternative Name conditions.

Likely exposure

Exposure is limited to software using OpenSSL 3.0.0 as a TLS client. Impact depends on how the application handles the unexpected SSL_get_error() result.

Exploitation context

The source bundle does not show KEV listing or active exploitation. OpenSSL describes attacker-induced, application-dependent incorrect behavior when the two issues are combined.

Researcher notes

The reliable scope is OpenSSL 3.0.0 fixed in 3.0.1. The sources describe application-dependent outcomes, so validation should focus on dependency inventory and TLS client behavior rather than assuming a uniform exploit impact.

Mitigation direction

  • Upgrade OpenSSL 3.0.0 deployments to OpenSSL 3.0.1 or later.
  • Check vendor advisories for appliances and products bundling OpenSSL 3.0.0.
  • Prioritize internet-facing services that initiate outbound TLS connections.
  • Review application error handling around TLS handshake failures.

Validation and detection

  • Inventory OpenSSL versions across servers, containers, appliances, and developer images.
  • Confirm no runtime links against OpenSSL 3.0.0 remain.
  • Check vendor product advisories for OpenSSL 3.0.0 exposure.
  • Review logs for repeated TLS handshake retries or unexplained client crashes.
Prepared
Confidence
high
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2021-4044 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
0Timeline events
0ADP providers
4Source links

CVSS and timeline data

No CVSS vectors or timeline events were available in the normalized CVE source material.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
OpenSSLOpenSSLFixed in OpenSSL 3.0.1 (Affected 3.0.0)Listed
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.