Przepełnienie bufora w OpenSSL wykorzystywane podczas weryfikacji certyfikatów X.509

Opublikowano wersję naprawczą biblioteki kryptograficznej OpenSSL 3.0.7, która łata dwie luki. Obydwa problemy są spowodowane przepełnieniem bufora w kodzie sprawdzającym poprawność pola e-mail w certyfikatach X.509 i mogą potencjalnie prowadzić do wykonania kodu podczas przetwarzania certyfikatu o specjalnej ramce. W momencie publikacji poprawki twórcy OpenSSL nie odnotowali żadnych dowodów na obecność działającego exploita, który mógłby doprowadzić do wykonania kodu atakującego.

Pomimo faktu, że w przedpremierowej zapowiedzi nowej wersji wspomniano o istnieniu krytycznego problemu, w rzeczywistości w wydanej aktualizacji status luki został zredukowany do poziomu niebezpiecznej, ale nie krytycznej luki. Zgodnie z przyjętymi w projekcie zasadami poziom zagrożenia ulega obniżeniu, jeżeli problem objawia się w nietypowych konfiguracjach lub gdy prawdopodobieństwo wykorzystania luki w praktyce jest niskie.

W tym przypadku poziom istotności został obniżony, ponieważ szczegółowa analiza luki przeprowadzona przez kilka organizacji wykazała, że ​​możliwość wykonania kodu podczas eksploatacji została zablokowana przez mechanizmy ochrony przed przepełnieniem stosu stosowane na wielu platformach. Ponadto układ siatki używany w niektórych dystrybucjach Linuksa powoduje, że 4 bajty wykraczające poza zakres są nakładane na następny bufor na stosie, który nie jest jeszcze używany. Możliwe jest jednak, że istnieją platformy, które można wykorzystać do wykonania kodu.

Zidentyfikowane problemy:

  • CVE-2022-3602 - luka, początkowo przedstawiana jako krytyczna, powoduje przepełnienie 4-bajtowego bufora podczas sprawdzania pola ze specjalnie zaprojektowanym adresem e-mail w certyfikacie X.509. W kliencie TLS lukę można wykorzystać podczas łączenia się z serwerem kontrolowanym przez osobę atakującą. Na serwerze TLS lukę można wykorzystać, jeśli stosowane jest uwierzytelnianie klienta przy użyciu certyfikatów. W tym przypadku podatność pojawia się już na etapie po weryfikacji łańcucha zaufania powiązanego z certyfikatem, tj. Atak wymaga, aby urząd certyfikacji zweryfikował złośliwy certyfikat atakującego.
  • CVE-2022-3786 to kolejny wektor wykorzystania luki CVE-2022-3602, zidentyfikowany podczas analizy problemu. Różnice sprowadzają się do możliwości przepełnienia bufora na stosie o dowolną liczbę bajtów zawierających znak „.” (tzn. osoba atakująca nie może kontrolować zawartości przepełnienia, a problem może zostać wykorzystany jedynie do spowodowania awarii aplikacji).

Luki występują jedynie w gałęzi OpenSSL 3.0.x (błąd został wprowadzony w kodzie konwersji Unicode (punycode) dodanym do gałęzi 3.0.x). Problem nie dotyczy wersji OpenSSL 1.1.1, a także bibliotek rozwidlających OpenSSL LibreSSL i BoringSSL. W tym samym czasie wydano aktualizację OpenSSL 1.1.1s, która zawiera jedynie poprawki błędów niezwiązanych z bezpieczeństwem.

Gałąź OpenSSL 3.0 jest używana w dystrybucjach takich jak Ubuntu 22.04, CentOS Stream 9, RHEL 9, OpenMandriva 4.2, Gentoo, Fedora 36, ​​​​Debian Testing/Unstable. Użytkownikom tych systemów zaleca się jak najszybsze zainstalowanie aktualizacji (Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch). W SUSE Linux Enterprise 15 SP4 i openSUSE Leap 15.4 pakiety z OpenSSL 3.0 są dostępne opcjonalnie, pakiety systemowe korzystają z gałęzi 1.1.1. Debian 1, Arch Linux, Void Linux, Ubuntu 11, Slackware, ALT Linux, RHEL 20.04, OpenWrt, Alpine Linux 8 i FreeBSD pozostają w gałęziach OpenSSL 3.16.x.

Źródło: opennet.ru

Dodaj komentarz