# CVE-2021-3711: SM2 Decryption Buffer Overflow

> A buffer overflow in OpenSSL's SM2 decryption allows attackers to corrupt memory, potentially causing crashes or executing arbitrary code.

- **Severity:** Critical 9.8 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 24 Aug 2021
- **Updated:** 8 Oct 2026
- **Also known as:** ALPINE-CVE-2021-3711, AZL-6779, CLEANSTART-2026-TN29223, CLSA-2023-1698949525, CLSA-2023-1699439565, DEBIAN-CVE-2021-3711, GHSA-5ww6-px42-wc85, JLSEC-2026-224, RUSTSEC-2021-0097, UBUNTU-CVE-2021-3711

## What is CVE-2021-3711?

CVE-2021-3711 is a critical memory corruption vulnerability in Debian Debian Linux, published on 24 Aug 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

In order to decrypt SM2 encrypted data an application is expected to call the API function EVP_PKEY_decrypt(). Typically an application will call this function twice. The first time, on entry, the "out" parameter can be NULL and, on exit, the "outlen" parameter is populated with the buffer size required to hold the decrypted plaintext. The application can then allocate a sufficiently sized buffer and call EVP_PKEY_decrypt() again, but this time passing a non-NULL value for the "out" parameter. A bug in the implementation of the SM2 decryption code means that the calculation of the buffer size required to hold the plaintext returned by the first call to EVP_PKEY_decrypt() can be smaller than the actual size required by the second call. This can lead to a buffer overflow when EVP_PKEY_decrypt() is called by the application a second time with a buffer that is too small. A malicious attacker who is able present SM2 content for decryption to an application could cause attacker chosen data to overflow the buffer by up to a maximum of 62 bytes altering the contents of other data held after the buffer, possibly changing application behaviour or causing the application to crash. The location of the buffer is application dependent but is typically heap allocated. Fixed in OpenSSL 1.1.1l (Affected 1.1.1-1.1.1k).

Weakness: CWE-120 (Buffer Copy without Checking Size of Input)

## Which versions are affected by CVE-2021-3711?

3 open source packages ship an affected version, including openssl-src. It affects 31 products.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `openssl-src` | crates.io | All versions | 111.16.0 |
| `openssl-src` | crates.io | All versions | 111.16.0 |
| `openssl-src` | crates.io | From 0.0.0-0 | 111.16.0 |

Products: Debian Debian Linux, Netapp Active Iq Unified Manager, Netapp Clustered Data Ontap, Netapp Clustered Data Ontap Antivirus Connector, Netapp E-Series Santricity Os Controller, Netapp Hci Management Node, Netapp Manageability Software Development Kit, Netapp Oncommand Insight, Netapp Oncommand Workflow Automation, Netapp Santricity Smi-S Provider, Netapp Snapcenter, Netapp Solidfire, Netapp Storage Encryption, Openssl Openssl, Oracle Communications Cloud Native Core Security Edge Protection Proxy, Oracle Communications Cloud Native Core Unified Data Repository, Oracle Communications Session Border Controller, Oracle Communications Unified Session Manager, Oracle Enterprise Communications Broker, Oracle Enterprise Session Border Controller and 11 more.

## How do I fix CVE-2021-3711?

Upgrade openssl-src to 111.16.0 or later.

## Is CVE-2021-3711 being exploited?

There is no known exploitation of CVE-2021-3711 in the wild and no public exploit code.

## Other vulnerabilities in Debian Debian Linux

- [CVE-2015-3306](https://insights.sbomify.com/CVE-2015-3306/): ProFTPD Improper Access Control (critical 10.0, exploited in the wild)
- [CVE-2025-49113](https://insights.sbomify.com/CVE-2025-49113/): RoundCube Webmail Deserialization of Untrusted Data (critical 9.9, exploited in the wild)
- [CVE-2026-24061](https://insights.sbomify.com/CVE-2026-24061/): GNU InetUtils Argument Injection (critical 9.8, exploited in the wild)
- [CVE-2025-39682](https://insights.sbomify.com/CVE-2025-39682/): Linux Kernel Improper Check for Unusual or Exceptional Conditions (critical 9.8, exploited in the wild)
- [CVE-2024-9680](https://insights.sbomify.com/CVE-2024-9680/): Mozilla Firefox Use-After-Free (critical 9.8, exploited in the wild)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2021-3711 and fix it if it is affected.

What it is: CVE-2021-3711 is a critical memory corruption vulnerability in Debian Debian Linux, published on 24 Aug 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2021-3711 in the wild and no public exploit code.

Affected packages and fixed versions:
- openssl-src (crates.io): affected all versions; fixed in 111.16.0
- openssl-src (crates.io): affected all versions; fixed in 111.16.0
- openssl-src (crates.io): affected from 0.0.0-0; fixed in 111.16.0

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2021-3711/ (Markdown: https://insights.sbomify.com/CVE-2021-3711/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2021-3711
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2021-3711
- OSV: https://osv.dev/vulnerability/CVE-2021-3711

---
From sbomify Insights: https://insights.sbomify.com/CVE-2021-3711/
Summaries are generated and may contain mistakes; the official description above is the record.
