Переповнення буфера в OpenSSL, що експлуатується під час перевірки сертифікатів X.509

Опубліковано коригуючий випуск криптографічної бібліотеки OpenSSL 3.0.7, у якому усунуто дві вразливості. Обидві проблеми викликані переповненням буфера в коді перевірки поля з email-адресою в сертифікатах X.509 і можуть призвести до виконання коду при обробці спеціально оформленого сертифіката. На момент публікації виправлення розробниками OpenSSL не було зафіксовано фактів наявності робочого експлоїту, здатного призвести до виконання атакуючого коду.

Незважаючи на те, що в заздалегідь опублікованому анонсі нового випуску згадувалася наявність критичної проблеми, фактично у випущеному оновленні статус уразливості знижено до рівня небезпечної, але не критичної вразливості. Відповідно до прийнятих у проекті правил зниження рівня небезпеки проводиться у разі прояву проблеми в нетипових конфігураціях або у разі низької ймовірності експлуатації вразливості на практиці.

У даному випадку рівень небезпеки був знижений, тому що в ході детального аналізу вразливості декількома організаціями було зроблено висновок, що можливість виконання коду в ході експлуатації блокується механізмами захисту від переповнення стека, що застосовуються в багатьох платформах. Крім того, застосована в деяких дистрибутивах Linux розкладка сітка призводить до того, що виходять за кордон 4 байти накладаються на буфер, що йде в стеку, який ще не використовується. Тим не менш, не виключено, що існують і такі платформи, в яких можлива експлуатація для виконання коду.

Виявлені проблеми:

  • CVE-2022-3602 - вразливість, спочатку піднесена як критична, призводить до 4-байтового переповнення буфера при перевірці в сертифікаті X.509 поля зі спеціально оформленою email-адресою. У TLS-клієнті вразливість може бути експлуатована при підключенні до сервера, підконтрольного атакуючого. На TLS-сервері вразливість може бути експлуатована у разі застосування аутентифікації клієнтів за сертифікатами. У цьому вразливість проявляється на стадії після верифікації що з сертифікатом ланцюжка довіри, тобто. для атаки потрібно щоб засвідчуючий центр запевнив шкідливий сертифікат зловмисника.
  • CVE-2022-3786 - інший вектор експлуатації вразливості CVE-2022-3602, виявлений у ході аналізу проблеми. Відмінності зводяться до можливості переповнення буфера в стеку довільне число байт, що містять символ «.» (тобто атакуючий не може керувати вмістом переповнення і проблема може бути використана тільки для виклику аварійного завершення програми).

Вразливості виявляються лише у гілці OpenSSL 3.0.x (помилка з'явилася в коді перетворення Unicode (punycode), доданому у гілку 3.0.x). Випуски OpenSSL 1.1.1, а також бібліотеки LibreSSL і BoringSSL, що відмовилися від OpenSSL, проблемі не схильні. Одночасно сформовано оновлення OpenSSL 1.1.1s, в якому присутні лише не пов'язані з безпекою виправлення помилок.

Гілка OpenSSL 3.0 використовується в таких дистрибутивах як Ubuntu 22.04, CentOS Stream 9, RHEL 9, OpenMandriva 4.2, Gentoo, Fedora 36, ​​Debian Testing/Unstable. Користувачам цих систем рекомендується якнайшвидше встановити оновлення (Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch). У SUSE Linux Enterprise 15 SP4 та openSUSE Leap 15.4 пакети з OpenSSL 3.0 доступні опціонально, системні пакети використовують гілку 1.1.1. На гілках OpenSSL 1.x залишаються Debian 11, Arch Linux, Void Linux, Ubuntu 20.04, Slackware, ALT Linux, RHEL 8, OpenWrt, Alpine Linux 3.16 та FreeBSD.

Джерело: opennet.ru

Додати коментар або відгук