Aktualizacja OpenSSL do wersji 1.1.1b w repozytorium openSUSE Tumbleweed do działania niektórych aplikacji związanych z libopenssl i korzystających z rosyjskiej lub ukraińskiej lokalizacji. Problem pojawił się po wprowadzeniu do OpenSSL do obsługi błędów w buforze wiadomości (SYS_str_reasons). Bufor został zdefiniowany na 4 kilobajty, ale tego okazało się za mało dla niektórych lokalizacji unicode.
Wynik funkcji strerror_r, używanej do wypełnienia bufora, dla rosyjskiej lokalizacji wynosi 6856 bajtów, a dla ukraińskiej — 7000. W kodzie OpenSSL pierwotnie sprawdzano na przepełnienie, ale przy obcinaniu końcówki rozmiar o jeden bajt większy niż rzeczywista wartość, co prowadziło do jednodolarowego przepełnienia i awarii przy ładowaniu zbyt długich dekodowań kodów błędów.
Obecnie już przygotowano , ale jeszcze nie została przyjęta. Aby cofnąć się do poprzedniej stabilnej wersji (OpenSSL 1.1.0h), można wykonać polecenia:
sudo zypper in tumbleweed-cli
sudo tumbleweed init
sudo tumbleweed switch 20190514
sudo zypper ref && sudo zypper dup && sudo zypper inr
Źródło: opennet.ru
