CRITICAL✓ PATCH🇬🇧 English

CVE-2021-3711

Buffer overflow w dekodowaniu SM2 w OpenSSL — przepełnienie bufora na stercie

CVSS 9.8v3.1pub. 2021-08-24upd. 2024-11-21

Błąd w implementacji deszyfrowania SM2 w OpenSSL powoduje, że rozmiar bufora obliczony podczas pierwszego wywołania EVP_PKEY_decrypt() może być zbyt mały dla danych zwracanych przy drugim wywołaniu. Skutkuje to buffer overflow, który może zostać wywołany przez przesłanie spreparowanych danych SM2 do podatnej aplikacji.

Pokaż oryginał (EN)

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

🤖 Analiza AI
Jak działa

Aplikacje korzystające z deszyfrowania SM2 wywołują EVP_PKEY_decrypt() dwukrotnie: pierwszy raz w celu ustalenia wymaganego rozmiaru bufora (parametr 'out' ustawiony na NULL), a następnie drugi raz z przydzielonym buforem. Błąd w obliczaniu rozmiaru bufora powoduje, że wartość zwrócona przy pierwszym wywołaniu jest zaniżona w stosunku do rzeczywistej ilości danych, jakie zostaną zapisane przy wywołaniu drugim. W efekcie atakujący może spowodować nadpisanie do 62 bajtów poza granicą bufora, modyfikując dane przechowywane w pamięci za nim — bufor jest typowo alokowany na stercie (heap).

Skutki

Atakujący mogący dostarczyć spreparowane dane SM2 do aplikacji może zmodyfikować zawartość pamięci procesu, co może prowadzić do zmiany zachowania aplikacji lub jej awaryjnego zakończenia (crash). W zależności od architektury aplikacji nie można wykluczyć możliwości wykonania dowolnego kodu (RCE).

Mitygacja

Należy zaktualizować OpenSSL do wersji 1.1.1l lub nowszej, w której błąd został naprawiony. Użytkownicy produktów Debian Linux i NetApp powinni zastosować patche dostępne u producenta zgodnie z referencjami.

Kogo dotyczy

OpenSSL w wersjach 1.1.1 do 1.1.1k (włącznie). Dodatkowo systemy Debian Linux oraz produkty NetApp: Active IQ Unified Manager i Clustered Data ONTAP korzystające z podatnych wersji OpenSSL.

Uwagi

Podatność dotyczy wyłącznie aplikacji obsługujących szyfrowanie oparte na algorytmie SM2 (chiński standard kryptograficzny). Aplikacje nieużywające SM2 nie są narażone. Poprawka dostępna w commitcie OpenSSL: 59f5e75f3bced8fc0e130d72a3f582cf7b480b46.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Debian

    OS
    Debian
    10.011.0
  • Netapp Active Iq Unified Manager

    APP
    Netapp
    wszystkie wersje
  • Netapp Clustered Data Ontap

    APP
    Netapp
    wszystkie wersje
  • Netapp Clustered Data Ontap Antivirus Connector

    APP
    Netapp
    wszystkie wersje
  • Netapp E Series Santricity Os Controller

    APP
    Netapp
    11.0 – 11.50.2
  • Netapp Hci Management Node

    APP
    Netapp
    wszystkie wersje
  • Netapp Manageability Software Development Kit

    APP
    Netapp
    wszystkie wersje
  • Netapp Oncommand Insight

    APP
    Netapp
    wszystkie wersje
  • Netapp Oncommand Workflow Automation

    APP
    Netapp
    wszystkie wersje
  • Netapp Santricity Smi S Provider

    APP
    Netapp
    wszystkie wersje
  • Netapp Snapcenter

    APP
    Netapp
    wszystkie wersje
  • Netapp Solidfire

    APP
    Netapp
    wszystkie wersje
  • Netapp Storage Encryption

    APP
    Netapp
    wszystkie wersje
  • OpenSSL

    APP
    Openssl
    1.1.1 – 1.1.1l (bez)
  • Oracle Communications Cloud Native Core Security Edge Protection Proxy

    APP
    Oracle
    1.7.0
  • Oracle Communications Cloud Native Core Unified Data Repository

    APP
    Oracle
    1.15.0
  • Oracle Communications Session Border Controller

    APP
    Oracle
    8.49.0
  • Oracle Communications Unified Session Manager

    APP
    Oracle
    8.2.58.4.5
  • Oracle Enterprise Communications Broker

    APP
    Oracle
    3.2.03.3.0
  • Oracle Enterprise Session Border Controller

    APP
    Oracle
    8.49.0
  • Oracle Essbase

    APP
    Oracle
    < 11.1.2.4.4721.1 – 21.3 (bez)
  • Oracle Health Sciences Inform Publisher

    APP
    Oracle
    6.2.1.16.3.1.1
  • Oracle Jd Edwards Enterpriseone Tools

    APP
    Oracle
    < 9.2.6.3
  • Oracle Jd Edwards World Security

    APP
    Oracle
    a9.4
  • Oracle MySQL Connectors

    APP
    Oracle
    ≤ 8.0.27
  • Oracle MySQL Enterprise Monitor

    APP
    Oracle
    ≤ 8.0.25
  • Oracle MySQL Server

    APP
    Oracle
    5.7.0 – 5.7.358.0.0 – 8.0.26
  • Oracle Peoplesoft Enterprise Peopletools

    APP
    Oracle
    8.578.588.59
  • Oracle Zfs Storage Appliance Kit

    APP
    Oracle
    8.8
  • Tenable Nessus Network Monitor

    APP
    Tenable
    ≤ 5.13.1
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
Tagi
Memory
CWE
Referencje

Powiązane podatności

CVE-2026-35273CRITICAL9.8⚠ KEVPL ✓ten sam produkt

Pominięcie uwierzytelnienia w Oracle PeopleSoft PeopleTools (RCE/Takeover)

CVE-2026-24061CRITICAL9.8⚠ KEVPL ✓ten sam produkt

GNU Inetutils telnetd: ominięcie uwierzytelnienia przez zmienną USER

CVE-2025-32463CRITICAL9.3⚠ KEVPL ✓ten sam produkt

Sudo: eskalacja uprawnień do root poprzez opcję --chroot (CVE-2025-32463)

CVE-2025-49113CRITICAL9.9⚠ KEVPL ✓ten sam produkt

RCE przez deserializację PHP w Roundcube Webmail (parametr _from)

CVE-2025-32433CRITICAL10.0⚠ KEVPL ✓ten sam produkt

Erlang/OTP SSH — nieuwierzytelniony RCE (CVSS 10.0)