Ошибка в OpenSSL нарушила работу некоторых приложений openSUSE Tumbleweed после обновления

Обновление OpenSSL до версии 1.1.1b в репозитории openSUSE Tumbleweed привело к нарушению работоспособности некоторых приложений, связанных с libopenssl и использующих русскую или украинскую локали. Проблема появилась после внесения в OpenSSL изменения в обработчик буфера сообщений об ошибках (SYS_str_reasons). Буфер был определён в 4 килобайта, но этого оказалось недостаточно для некоторых юникод-локалей.

Вывод strerror_r, используемый для заполнения буфера, для русской локали составляет 6856 байт, а для украинской — 7000. В коде OpenSSL изначально была проверка на переполнение, но она при обрезании хвоста учитывала размер на один байт больше фактического значения, что приводило к однобайтовому переполнению и краху при загрузке слишком длинных расшифровок кодов ошибок.

В настоящее время уже подготовлено исправление, но оно ещё не принято. Чтобы откатиться до предыдущей стабильной версии (OpenSSL 1.1.0h) можно выполнить команды:

       sudo zypper in tumbleweed-cli     sudo tumbleweed init     sudo tumbleweed switch 20190514     sudo zypper ref && sudo zypper dup && sudo zypper inr  

OpenNet прочитано 7494 раза