Skip to main content
Public proof of conceptFix available

CVE-2021-3712

A public proof of concept exists; no exploitation attested.

  • Published2021-08-24
  • WeaknessCWE-125

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

Description

ASN.1 strings are represented internally within OpenSSL as an ASN1_STRING structure which contains a buffer holding the string data and a field holding the buffer length. This contrasts with normal C strings which are repesented as a buffer for the string data which is terminated with a NUL (0) byte. Although not a strict requirement, ASN.1 strings that are parsed using OpenSSL's own "d2i" functions (and other similar parsing functions) as well as any string whose value has been set with the ASN1_STRING_set() function will additionally NUL terminate the byte array in the ASN1_STRING structure. However, it is possible for applications to directly construct valid ASN1_STRING structures which do not NUL terminate the byte array by directly setting the "data" and "length" fields in the ASN1_STRING array. This can also happen by using the ASN1_STRING_set0() function. Numerous OpenSSL functions that print ASN.1 data have been found to assume that the ASN1_STRING byte array will be NUL terminated, even though this is not guaranteed for strings that have been directly constructed. Where an application requests an ASN.1 structure to be printed, and where that ASN.1 structure contains ASN1_STRINGs that have been directly constructed by the application without NUL terminating the "data" field, then a read buffer overrun can occur. The same thing can also occur during name constraints processing of certificates (for example if a certificate has been directly constructed by the application instead of loading it via the OpenSSL parsing functions, and the certificate contains non NUL terminated ASN1_STRING structures). It can also occur in the X509_get1_email(), X509_REQ_get1_email() and X509_get1_ocsp() functions. If a malicious actor can cause an application to directly construct an ASN1_STRING and then process it through one of the affected OpenSSL functions then this issue could be hit. This might result in a crash (causing a Denial of Service attack). It could also result in the disclosure of private memory contents (such as private keys, or sensitive plaintext). Fixed in OpenSSL 1.1.1l (Affected 1.1.1-1.1.1k). Fixed in OpenSSL 1.0.2za (Affected 1.0.2-1.0.2y).

Timeline

dates in UTC
  1. 2021-08-2415:15CVE publishedNVD
  2. 2026-10-2319:23First public proof of conceptPoC-in-GitHub
  3. 2026-10-2319:23EPSS crossed 10 %FIRST EPSS

Observed activity

isMalicious corpus · updated 2026-10-23 21:37 UTC
Indicators tagged with this CVE, per day0 indicators over 7 days
Block these indicators
  • Firewall list (EDL, text): https://api.ismalicious.com/edl/cve/CVE-2021-3712?format=txt
  • CSV export: https://api.ismalicious.com/edl/cve/CVE-2021-3712?format=csv
  • TAXII collection of exploited CVEs
  • The EDL and CSV take an API key on the Pro plan.

Versions per branch

NVD
Debian debian linux
BranchAffectedFixed in
9.0= 9.0no fix published
10.0= 10.0no fix published
11.0= 11.0no fix published
Oracle essbase
BranchAffectedFixed in
21.x≥ 21.0, < 21.321.3
11.1< 11.1.2.4.04711.1.2.4.047
21.3= 21.3no fix published
Oracle peoplesoft enterprise peopletools
BranchAffectedFixed in
8.57= 8.57no fix published
8.58= 8.58no fix published
8.59= 8.59no fix published

30 more products in the sources.

as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.

Distribution builds and vendor advisories

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Vendor advisories

  • ICSA-25-226-21 CISA1 known affected

    Siemens BFCClient

    BFCClient

  • ICSA-23-143-02 CISA8 known affected

    Hitachi Energy's RTU500 Series Product (UPDATE B)

    RTU500 series CMU Firmware: >=12.0.1|<=12.0.15 · RTU500 series CMU Firmware: >=12.2.1|<=12.2.12 · RTU500 series CMU Firmware: >=12.4.1|<=12.4.12 · +5 more

  • ICSA-22-130-06 CISA2 known affected

    Mitsubishi Electric MELSOFT GT OPC UA

    GT SoftGOT2000: Versions 1.215Z to 1.270G · MELSOFT GT OPC UA Client: Versions 1.00A to 1.02C

  • ICSA-25-259-05 CISA271 known affected

    Siemens OpenSSL Vulnerability in Industrial Products

    Industrial Edge - Machine Insight App · Industrial Edge - PROFINET IO Connector · RUGGEDCOM RM1224 LTE(4G) EU (6GK6108-4AM00-2BA2) · +268 more

Full record on NVD

Fix

  1. Vendor fix CISA ICSA-25-226-21 · 1 productUpdate to V2.17 or later version. Contact customer support to obtain the update
  2. Vendor fix CISA ICSA-23-143-02 · 8 productsRTU500 series CMU Firmware version 12.0.1 - 12.0.14: Update to CMU Firmware version 12.0.15* (Planned Update)
  3. Vendor fix CISA ICSA-23-143-02 · 8 productsRTU500 series CMU Firmware version 12.2.1 - 12.2.11: Update to CMU Firmware version 12.2.12* (Planned Update)
  4. Vendor fix CISA ICSA-23-143-02 · 8 productsRTU500 series CMU Firmware version 12.4.1 - 12.4.11: Update to CMU Firmware version 12.4.12* (Planned Update)
  5. Vendor fix CISA ICSA-23-143-02 · 8 productsRTU500 series CMU Firmware version 12.6.1 - 12.6.8: Update to CMU Firmware version 12.6.9
  6. Vendor fix CISA ICSA-23-143-02 · 8 productsRTU500 series CMU Firmware version 12.7.1 - 12.7.5: Update to CMU Firmware version 12.7.6

Detection

read 2026-10-23 19:23 UTC
Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof-of-concept repositories
1 repository, unverifiedcode-with-amitk/CentOS7_CVE-2021-3712_Remediation
PoC-in-GitHub

Sources

  • CISA-ADPSSVC decisionnone2026-04-16
  • OpenCVESSVC decisionnone—
  • CISA-ADPCVSS 3.17.42026-04-16
  • NVDCVSS 3.17.4read 2026-10-23
  • NVDCVSS 2.05.8read 2026-10-23
  • CISA-ADPweakness (CWE)CWE-1252026-04-16
  • NVDweakness (CWE)CWE-125read 2026-10-23
  • FIRST EPSSEPSS score50.4 %read 2026-10-23
  • PoC-in-GitHubproof of concept1read 2026-10-23
  • OSVaffected packages—

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H
Published
2021-08-24
Last Modified
2026-06-17
NVD status
Modified

Frequently asked questions

What is CVE-2021-3712?

ASN.1 strings are represented internally within OpenSSL as an ASN1_STRING structure which contains a buffer holding the string data and a field holding the buffer length. This contrasts with normal C strings which are repesented as a buffer for the string data which is terminated with a NUL (0) byte. Although not a strict requirement, ASN.1 strings that are parsed using OpenSSL's own "d2i" functions (and other similar parsing functions) as well as any string whose value has been set with the ASN1_STRING_set() function will additionally NUL terminate the byte array in the ASN1_STRING structure. However, it is possible for applications to directly construct valid ASN1_STRING structures which do not NUL terminate the byte array by directly setting the "data" and "length" fields in the ASN1_STRING array. This can also happen by using the ASN1_STRING_set0() function. Numerous OpenSSL functions that print ASN.1 data have been found to assume that the ASN1_STRING byte array will be NUL terminated, even though this is not guaranteed for strings that have been directly constructed. Where an application requests an ASN.1 structure to be printed, and where that ASN.1 structure contains ASN1_STRINGs that have been directly constructed by the application without NUL terminating the "data" field, then a read buffer overrun can occur. The same thing can also occur during name constraints processing of certificates (for example if a certificate has been directly constructed by the application instead of loading it via the OpenSSL parsing functions, and the certificate contains non NUL terminated ASN1_STRING structures). It can also occur in the X509_get1_email(), X509_REQ_get1_email() and X509_get1_ocsp() functions. If a malicious actor can cause an application to directly construct an ASN1_STRING and then process it through one of the affected OpenSSL functions then this issue could be hit. This might result in a crash (causing a Denial of Service attack). It could also result in the disclosure of private memory contents (such as private keys, or sensitive plaintext). Fixed in OpenSSL 1.1.1l (Affected 1.1.1-1.1.1k). Fixed in OpenSSL 1.0.2za (Affected 1.0.2-1.0.2y).

Is CVE-2021-3712 actively exploited?

Active exploitation of CVE-2021-3712 has not been confirmed. Its EPSS score was 50.4% on 2026-10-23, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2021-3712?

CVE-2021-3712 has a CVSS v3 base score of 7.4 (HIGH severity), with vector string CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H.

Hear about the next vulnerability in your software

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month