Skip to content
OpenAdvisories
Critical · 9.8 Public exploit CVE-2021-3711 EUVD-2022-2673GHSA-5ww6-px42-wc85RUSTSEC-2021-0097

SM2 Decryption Buffer Overflow

Published Aug 24, 2021 · Updated Oct 8, 2026 · Assigned by openssl

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).

Affected products

VendorProductAffectedFixed
OpenSSL OpenSSL Fixed in OpenSSL 1.1.1l (Affected 1.1.1-1.1.1k) —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 openssl 1.1.1l-1 —
Debian 13 openssl 1.1.1l-1 —
Debian 12 openssl 1.1.1l-1 —
Debian 11 openssl 1.1.1k-1+deb11u1 DSA-4963-1
Debian 10 openssl 1.1.1d-0+deb10u7 DSA-4963-1
ReleasePackageFixed inAdvisory
Ubuntu 22.04 LTS openssl 1.1.1l-1ubuntu1 —
Ubuntu 20.04 LTS openssl 1.1.1f-1ubuntu2.8 USN-5051-1
Ubuntu 18.04 LTS openssl 1.1.1-1ubuntu2.1~18.04.13 USN-5051-1
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro FIPS 20.04 LTS openssl No fix yet —
Ubuntu Pro FIPS 18.04 LTS openssl No fix yet —
Ubuntu Pro FIPS-updates 20.04 LTS openssl 1.1.1f-1ubuntu2.fips.7.2 —
Ubuntu Pro FIPS-updates 18.04 LTS openssl 1.1.1-1ubuntu2.fips.2.1~18.04.13.2 —
ReleasePackageFixed inAdvisory
SLES 15 SP4 grafana 8.5.13-150200.3.29.5 SUSE-SU-2022:4428-1
SLES 15 SP3 openssl-1_1 1.1.1d-11.27.1 SUSE-SU-2021:2830-1
SLES 15 SP2 openssl-1_1 1.1.1d-11.27.1 SUSE-SU-2021:2830-1
SLES 12 SP5 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SLES 12 SP5 openssl-1_1 1.1.1d-2.36.2 SUSE-SU-2021:2833-1
SLES 12 SP4 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SLES 12 SP4 openssl-1_1 1.1.1d-2.36.2 SUSE-SU-2021:2833-1
Show 18 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES 12 SP3 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SLES for SAP 12 SP5 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SLES for SAP 12 SP5 openssl-1_1 1.1.1d-2.36.2 SUSE-SU-2021:2833-1
SLES for SAP 12 SP4 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SLES for SAP 12 SP4 openssl-1_1 1.1.1d-2.36.2 SUSE-SU-2021:2833-1
SLES for SAP 12 SP3 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SLE Micro 5.0 openssl-1_1 1.1.1d-11.27.1 SUSE-SU-2021:2830-1
SUSE OpenStack Cloud Crowbar 9 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SUSE OpenStack Cloud Crowbar 9 openssl-1_1 1.1.1d-2.36.2 SUSE-SU-2021:2833-1
SUSE OpenStack Cloud Crowbar 8 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SUSE OpenStack Cloud 9 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SUSE OpenStack Cloud 9 openssl-1_1 1.1.1d-2.36.2 SUSE-SU-2021:2833-1
SUSE OpenStack Cloud 8 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SUSE Manager Server Module 4.2 prometheus-postgres_exporter 0.10.0-150000.1.3.1 SUSE-SU-2022:1396-1
SUSE Manager Proxy Module 4.3 golang-github-boynux-squid_exporter 1.6-150000.1.9.1 SUSE-SU-2022:4437-1
SUSE Manager Proxy Module 4.3 prometheus-blackbox_exporter 0.19.0-150000.1.14.3 SUSE-SU-2022:4437-1
SUSE Manager Proxy Module 4.2 golang-github-boynux-squid_exporter 1.6-150000.1.9.1 SUSE-SU-2022:4437-1
SUSE Manager Proxy Module 4.2 prometheus-blackbox_exporter 0.19.0-150000.1.14.3 SUSE-SU-2022:4437-1
SUSE Manager Client Tools for SLE Micro 5 dracut-saltboot 0.1.1665997480.587fa10-150000.1.41.1 SUSE-SU-2022:4437-1
SUSE Manager Client Tools for SLE Micro 5 prometheus-blackbox_exporter 0.19.0-150000.1.14.3 SUSE-SU-2022:4437-1
SUSE Manager Client Tools for SLE Micro 5 uyuni-proxy-systemd-services 4.3.7-150000.1.9.3 SUSE-SU-2022:4437-1
SUSE Manager Client Tools Beta for SLE Micro 5 dracut-saltboot 0.1.1681904360.84ef141-159000.3.30.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools Beta for SLE Micro 5 golang-github-QubitProducts-exporter_exporter 0.4.0-159000.4.6.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools Beta for SLE Micro 5 prometheus-blackbox_exporter 0.24.0-159000.3.6.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools Beta for SLE Micro 5 uyuni-proxy-systemd-services 5.0.1-159000.3.9.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 ansible 2.9.27-159000.3.9.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 dracut-saltboot 0.1.1665997480.587fa10-150000.1.41.1 SUSE-SU-2024:0196-1, SUSE-SU-2022:4437-1
SUSE Manager Client Tools 15 golang-github-QubitProducts-exporter_exporter 0.4.0-159000.4.6.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 golang-github-boynux-squid_exporter 1.6-150000.1.9.1 SUSE-SU-2024:0196-1, SUSE-SU-2022:4437-1
SUSE Manager Client Tools 15 golang-github-lusitaniae-apache_exporter 1.0.0-159000.4.12.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 golang-github-prometheus-prometheus 2.45.0-159000.6.33.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 grafana 8.3.5-150000.1.30.1 SUSE-SU-2024:0196-1, SUSE-SU-2022:4437-1, SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 mgr-cfg 4.2.8-150000.1.24.1 SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 mgr-osad 4.2.8-150000.1.36.1 SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 mgr-push 4.2.5-150000.1.18.2 SUSE-SU-2024:0196-1, SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 mgr-virtualization 4.2.4-150000.1.26.1 SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 prometheus-blackbox_exporter 0.19.0-150000.1.14.3 SUSE-SU-2024:0196-1, SUSE-SU-2022:4437-1
SUSE Manager Client Tools 15 prometheus-postgres_exporter 0.10.0-150000.1.3.1 SUSE-SU-2024:0196-1, SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 python-hwdata 2.3.5-159000.5.13.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 python-pyvmomi 6.7.3-159000.3.6.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 rhnlib 4.2.6-150000.3.34.1 SUSE-SU-2024:0196-1, SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 spacecmd 4.2.16-150000.3.77.1 SUSE-SU-2024:0196-1, SUSE-SU-2022:4437-1, SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 spacewalk-client-tools 4.2.18-150000.3.59.1 SUSE-SU-2024:0196-1, SUSE-SU-2022:4437-1, SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 spacewalk-koan 4.2.6-150000.3.27.1 SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 spacewalk-oscap 4.2.4-150000.3.18.1 SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 supportutils-plugin-salt 1.2.2-159000.5.9.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 supportutils-plugin-susemanager-client 5.0.1-159000.6.15.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 suseRegisterInfo 4.2.6-150000.3.21.1 SUSE-SU-2022:1396-1
SUSE Manager Client Tools 15 uyuni-common-libs 5.0.1-159000.3.33.1 SUSE-SU-2024:0196-1
SUSE Manager Client Tools 15 uyuni-proxy-systemd-services 4.3.7-150000.1.9.3 SUSE-SU-2024:0196-1, SUSE-SU-2022:4437-1
SUSE Manager Client Tools 12 golang-github-QubitProducts-exporter_exporter 0.4.0-1.6.1 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 golang-github-boynux-squid_exporter 1.6-1.9.1 SUSE-SU-2024:0191-1, SUSE-SU-2022:4439-1
SUSE Manager Client Tools 12 golang-github-lusitaniae-apache_exporter 1.0.0-4.12.4 SUSE-SU-2024:0191-1
SUSE Manager Client Tools 12 golang-github-prometheus-alertmanager 0.23.0-1.12.3 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 golang-github-prometheus-prometheus 2.45.0-4.33.3 SUSE-SU-2024:0191-1
SUSE Manager Client Tools 12 golang-github-prometheus-promu 0.14.0-4.12.2 SUSE-SU-2024:0191-1
SUSE Manager Client Tools 12 grafana 8.3.5-1.30.3 SUSE-SU-2024:0191-1, SUSE-SU-2022:4439-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 kiwi-desc-saltboot 0.1.1687520761.cefb248-4.15.2 SUSE-SU-2024:0191-1
SUSE Manager Client Tools 12 mgr-cfg 4.3.6-1.27.4 SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 mgr-custom-info 4.3.3-1.18.1 SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 mgr-daemon 4.3.4-1.32.3 SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 mgr-osad 4.3.6-1.39.4 SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 mgr-push 4.3.4-1.21.4 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 mgr-virtualization 4.3.5-1.29.3 SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 prometheus-blackbox_exporter 0.19.0-1.8.2 SUSE-SU-2024:0191-1, SUSE-SU-2022:4439-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 prometheus-postgres_exporter 0.10.0-1.8.2 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 python-hwdata 2.3.5-12.9.1 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 rhnlib 4.3.4-21.43.3 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 spacecmd 4.3.11-38.103.3 SUSE-SU-2024:0191-1, SUSE-SU-2022:4439-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 spacewalk-client-tools 4.3.9-52.71.3 SUSE-SU-2022:4439-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 spacewalk-koan 4.3.5-24.33.3 SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 spacewalk-oscap 4.3.5-19.27.1 SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 spacewalk-remote-utils 4.3.3-24.24.3 SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 supportutils-plugin-salt 1.2.0-6.16.1 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 supportutils-plugin-susemanager-client 4.3.2-6.24.1 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 suseRegisterInfo 4.3.3-25.27.3 SUSE-SU-2022:2134-1
SUSE Manager Client Tools 12 system-user-grafana +1 1.0.0-3.7.2 SUSE-SU-2024:0191-1
SUSE Manager Client Tools 12 uyuni-common-libs 4.3.4-1.21.3 SUSE-SU-2024:0191-1, SUSE-SU-2022:2134-1
SUSE HPE Helion OpenStack 8 golang-github-prometheus-node_exporter 1.3.0-1.15.3 SUSE-SU-2022:2134-1
SUSE Enterprise Storage 6 grafana 8.5.13-150100.3.12.1 SUSE-SU-2022:3676-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed grafana 8.3.4-1.1 openSUSE-SU-2024:11816-1
openSUSE Tumbleweed grype 0.92.1-1.1 openSUSE-SU-2025:15136-1
openSUSE Tumbleweed openssl-1_1 1.1.1l-1.2 openSUSE-SU-2024:11127-1
openSUSE Leap 15.4 dracut-saltboot 0.1.1665997480.587fa10-150000.1.41.1 SUSE-SU-2022:4437-1
openSUSE Leap 15.4 golang-github-boynux-squid_exporter 1.6-150000.1.9.1 SUSE-SU-2022:4437-1
openSUSE Leap 15.4 golang-github-prometheus-promu 0.13.0-150000.3.9.1 SUSE-SU-2022:4437-1
openSUSE Leap 15.4 grafana 8.3.5-150200.3.21.1 SUSE-SU-2022:4428-1, SUSE-FU-2022:1419-1
openSUSE Leap 15.4 prometheus-blackbox_exporter 0.19.0-150000.1.14.3 SUSE-SU-2022:4437-1
openSUSE Leap 15.4 spacecmd 4.3.16-150000.3.89.1 SUSE-SU-2022:4437-1
openSUSE Leap 15.4 wire 0.5.0-150000.1.9.3 SUSE-SU-2022:4437-1
openSUSE Leap 15.3 dracut-saltboot 0.1.1665997480.587fa10-150000.1.41.1 SUSE-SU-2022:4437-1
openSUSE Leap 15.3 golang-github-boynux-squid_exporter 1.6-150000.1.9.1 SUSE-SU-2022:4437-1
openSUSE Leap 15.3 golang-github-prometheus-promu 0.13.0-150000.3.9.1 SUSE-SU-2022:4437-1
openSUSE Leap 15.3 grafana 8.3.5-150200.3.21.1 SUSE-SU-2022:4428-1, SUSE-FU-2022:1419-1
openSUSE Leap 15.3 openssl-1_1 1.1.1d-11.27.1 openSUSE-SU-2021:2830-1
openSUSE Leap 15.3 prometheus-postgres_exporter 0.10.0-150000.1.3.1 SUSE-SU-2022:1396-1
openSUSE Leap 15.3 rhnlib 4.2.6-150000.3.34.1 SUSE-SU-2022:1396-1
openSUSE Leap 15.3 spacecmd 4.2.16-150000.3.77.1 SUSE-SU-2022:4437-1, SUSE-SU-2022:1396-1
openSUSE Leap 15.2 openssl-1_1 1.1.1d-lp152.7.21.1 openSUSE-SU-2021:1188-1
ReleasePackageFixed inAdvisory
Alpine v3.24 openssl 1.1.1l-r0 —
Alpine v3.23 openssl 1.1.1l-r0 —
Alpine v3.22 openssl 1.1.1l-r0 —
Alpine v3.21 openssl 1.1.1l-r0 —
Alpine v3.20 openssl 1.1.1l-r0 —
Show 9 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 openssl 1.1.1l-r0 —
Alpine v3.18 openssl +1 1.1.1l-r0 —
Alpine v3.17 openssl +1 1.1.1l-r0 —
Alpine v3.16 openssl +1 1.1.1l-r0 —
Alpine v3.15 openssl +1 1.1.1l-r0 —
Alpine v3.14 openssl 1.1.1l-r0 —
Alpine v3.13 openssl 1.1.1l-r0 —
Alpine v3.12 openssl 1.1.1l-r0 —
Alpine v3.11 openssl 1.1.1l-r0 —

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 2 (CBL-Mariner) openssl 1.1.1k-11 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io openssl-src < 111.16.0 111.16.0 GHSA-5ww6-px42-wc85
crates.io openssl-src >= 0.0.0-0, < 111.16.0 111.16.0 RUSTSEC-2021-0097

Advisories 34

References