Препълване на буфера в OpenSSL, експлоатирано при проверка на сертификати X.509

Публикувано е коригиращо издание на криптографската библиотека OpenSSL 3.0.7, в което са отстранени две уязвимости. И двете проблеми са резултат от препълване на буфера в кода за проверка на полето с имейл адреси в сертификатите X.509 и потенциално могат да доведат до изпълнение на код при обработка на специално оформен сертификат. Към момента на публикуване на поправките от OpenSSL не е зафиксирно наличие на работещ експлоит, способен да доведе до изпълнение на код от атакуващия.

Въпреки че в предварително публикуваното анонсиране на новата версия се споменаваше за наличие на критичен проблем, всъщност в издаденото обновление статусът на уязвимостта е намален до ниво опасна, но не критична уязвимост. В съответствие с приетите в проекта правила, нивото на опасност се намалява в случай на проявяване на проблема в нетипични конфигурации или в случай на ниска вероятност за експлоатация на уязвимостта на практика.

В разглеждания случай нивото на опасност е намалено, тъй като по време на детайлния анализ на уязвимостта от няколко организации е установено, че възможността за изпълнение на код по време на експлоатация е блокирана от механизмите за защита от препълване на стека, прилагани на много платформи. Освен това, използваната в някои дистрибуции на Linux подредба на мрежата води до това, че излизането извън границите на 4 байта се наслагва на следващия все още неизползван буфер в стека. Въпреки това, не е изключено, че съществуват и такива платформи, на които е възможна експлоатация за изпълнение на код.

Открити проблеми:

  • CVE-2022-3602 — уязвимост, първоначално представена като критична, води до 4-байтово препълване на буфера при проверка на сертификата X.509 на поле със специално оформен имейл адрес. В TLS клиента уязвимостта може да бъде експлоатирана при свързване към сървъра, под контрола на атакуващия. На TLS сървър уязвимостта може да бъде експлоатирана в случай на прилагане на аутентикация на клиенти по сертификати. При това уязвимостта се проявява на етапа след верификацията, свързана с веригата на доверие на сертификата, т.е. за атака е необходимо удостоверяващият център да завери злонамерения сертификат на злосторника.
  • CVE-2022-3786 — алтернативен вектор на експлоатация на уязвимостта CVE-2022-3602, открита по време на анализа на проблема. Разликите са свързани с възможността за препълване на буфера в стека с произволен брой байтове, съдържащи символа „.“ (т.е. атакуващият не може да контролира съдържанието на препълването и проблемът може да се използва само за предизвикване на аварийно затваряне на приложението).

Уязвимостите се проявяват само в клона OpenSSL 3.0.x (грешката се появява в кода за преобразуване на Unicode (punycode), добавен в клона 3.0.x). Версиите OpenSSL 1.1.1, както и производните библиотеки LibreSSL и BoringSSL, не са засегнати от проблема. В същото време е издадено обновление 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster