Elérhető az OpenSSL 3.0.1 és 1.1.1m kriptográfiai könyvtár frissítései. A 3.0.1-es verzióban egy sebezhetőséget (CVE-2021-4044) javítottak, emellett mindkét kiadásban körülbelül egy tucat hibát orvosoltak.
A sebezhetőség a SSL/TLS kliens implementációjában rejlik, és abból adódik, hogy a libssl könyvtár helytelenül kezeli a negatív hiba kódokat, amelyeket az X509_verify_cert() függvény visszaad a szerver által a kliensnek átadott tanúsítvány ellenőrzésekor. Negatív kódok keletkeznek belső hibák, például memóriafoglalási hiba esetén. Ilyen hiba visszaadása esetén a következő bemenet/kimenet hívások, mint az SSL_connect() és az SSL_do_handshake(), sikertelen befejezést és SSL_ERROR_WANT_RETRY_VERIFY hibakódot eredményeznek, ami csak akkor kellene, hogy vissza legyen adva, ha az alkalmazás korábban végrehajtotta az SSL_CTX_set_cert_verify_callback() hívást.
Mivel a legtöbb alkalmazás nem hívja meg az SSL_CTX_set_cert_verify_callback() függvényt, az SSL_ERROR_WANT_RETRY_VERIFY megjelenése félreértésre adhat okot, ami összeomláshoz, végtelen ciklushoz vagy egyéb nem kívánt reakciókhoz vezethet. A probléma legnagyobb veszélye egy másik OpenSSL 3.0-beli hibával párosulva áll fenn, amely belső hibát idéz elő az X509_verify_cert() hívása során a 'Subject Alternative Name' kiterjesztés nélküli, de névkorlátozásokkal rendelkező tanúsítványok feldolgozása során. Ebben az esetben a támadás az alkalmazásoktól függő anomáliákhoz vezethet a tanúsítványok kezelésében és a TLS ülések létrehozásában.
Forrás: opennet.ru
