Випуск OpenSSL 3.6.0 з підтримкою EVP_SKEY та усуненням переповнення буфера

Відбувся реліз бібліотеки OpenSSL 3.6.0, що пропонує реалізацію протоколів SSL/TLS і різних алгоритмів шифрування. OpenSSL 3.6 віднесено до випусків із звичайним терміном підтримки, оновлення для яких випускаються протягом 13 місяців. Підтримка минулих гілок OpenSSL 3.5 LTS, 3.4, 3.3, 3.2 та 3.0 LTS триватиме до квітня 2030 року, жовтня 2026 року, квітня 2026 року, листопада 2025 року та вересня 2026 року відповідно. Код проекту розповсюджується під ліцензією Apache 2.0.

Основні нововведення:

  • Додано підтримку структури EVP_SKEY (Symmetric KEY) для представлення симетричних ключів як непрозорих (opaque) об'єктів. На відміну від raw-ключів, представлених масивом байтів, EVP_SKEY структура ключа абстрагується і містить додаткові метадані. Допустимо застосування EVP_SKEY у функціях шифрування, обміну ключами та формування ключів (KDF). Для роботи з ключами EVP_SKEY додані функції EVP_KDF_CTX_set_SKEY(), EVP_KDF_derive_SKEY() та EVP_PKEY_derive_SKEY().
  • Додана підтримка верифікації цифрових підписів на базі схеми LMS (Leighton-Micali Signatures), що використовує хеш-функції та деревоподібне хешування у формі дерева Меркла (Merkle Tree, кожна гілка верифікує всі гілки і вузли, що знаходяться нижче). Цифрові підписи LMS стійкі до підбору на квантовому комп'ютері та розроблені для засвідчення цілісності прошивок та додатків.
  • Додано підтримку категорій безпеки NIST для параметрів об'єктів PKEY (відкриті та закриті ключі). Виставлення категорії безпеки здійснюється через налаштування «security-category». Для перевірки рівня безпеки додано функцію EVP_PKEY_get_security_category(). Рівень безпеки відображає стійкість до підбору на квантових комп'ютерах і може приймати цілі значення від 0 до 5:
    • 0 - реалізація, не стійка до злому на квантових комп'ютерах;
    • 1/3/5 - реалізація не виключає пошук на квантовому комп'ютері ключа в блоковому шифрі з 128/192/256-бітним ключем;
    • 2/4 - реалізація не виключає пошук на квантовому комп'ютері колізії в 256/384-бітному хеш).
  • Додано команду openssl configutl для обробки файлу конфігурації. Утиліта дозволяє на основі багатофайлової конфігурації з include-вмиканнями сформувати зведений файл з усіма налаштуваннями.
  • У криптопровайдер FIPS додано підтримку детермінованого формування цифрових підписів ECDSA (при одних і тих же вхідних даних генерується один і той самий підпис), відповідно до вимог стандарту FIPS 186-5.
  • Підвищено вимоги до складального оточення. Для складання OpenSSL тепер недостатньо інструментарію з підтримкою ANSI-C і потрібний компілятор, сумісний із стандартом C-99.
  • Оголошено застарілі функції, пов'язані зі структурою EVP_PKEY_ASN1_METHOD.
  • Припинено підтримку платформи VxWorks.

Виправлені вразливості:

  • CVE-2025-9230 – вразливість у коді дешифрування CMS-повідомлень, зашифрованих з використанням пароля (PWRI). Вразливість може призвести до запису та читання даних поза виділеним буфером, що дозволяє ініціювати аварійне завершення або пошкодження пам'яті в програмі, що використовує OpenSSL для обробки CMS-повідомлень. Не виключається експлуатація вразливості для організації виконання свого коду, але небезпека проблеми знижує те, що шифрування CMS-повідомлень з використанням пароля практично застосовується вкрай рідко. Окрім версії OpenSSL 3.6.0 уразливість усунена у випусках OpenSSL 3.5.4, 3.4.3, 3.3.5, 3.2.6 та 3.0.18. Проблема також виправлена ​​в оновленнях бібліотеки LibreSSL 4.0.1 та 4.1.1, що розвивається проектом OpenBSD.
  • CVE-2025-9231 — реалізація алгоритму SM2 схильна до атаки по сторонніх каналах, що дозволяє на системах з 64-розрядними CPU ARM відтворити закритий ключ, аналізуючи зміну часу виконання окремих обчислень. Потенційно атака може бути проведена віддалено. Небезпека атаки знижує те, що OpenSSL безпосередньо не підтримує використання сертифікатів із ключами SM2 у TLS.
  • CVE-2025-9232 — вразливість у реалізації вбудованого HTTP-клієнта, що призводить до читання даних з області поза буфером під час обробки у функціях HTTP Client спеціально оформленого URL. Проблема проявляється лише при виставленій змінній оточенні «no_proxy» і може призвести до аварійного завершення програми.

Джерело: opennet.ru

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