В библиотеката zlib е открита уязвимост (CVE-2018-25032), водеща до преливане на буфера при opит за компресия на специално подготвена последователност от символи в входящите данни. В текущото си състояние, изследователите демонстрираха възможността за аварийно завършване на процеса. Все още не е проучвано дали проблемът може да има по-сериозни последствия.
Уязвимостта се проявява от версия zlib 1.2.2.2 и засяга също така актуалното издание zlib 1.2.11. Забележително е, че пач с поправка на уязвимостта е предложен още през 2018 година, но разработчиците не му обърнаха внимание и не издадоха корективно издание (библиотеката zlib последно е обновена през 2017 година). Поправката все още не е включена и в пакетите, предлагани от дистрибуциите. Можете да следите публикацията на поправките от дистрибуциите на тези страници: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Библиотеката zlib-ng не е подложена на проблема.
Уязвимостта се проявява, когато в входния поток се среща голямо количество съвпадения, подлежащи на опаковка, за които се прилага опаковка на базата на фиксирани кодове на Хафман. При определени обстоятелства съдържанието на междинния буфер, в който се помества компресираният резултат, може да се наложи на паметта, в която се съхранява таблицата с честотности на символите. В резултат на това наблюдаваме образуването на некоректни компресирани данни и срив поради запис извън границите на буфера.
Уязвимостта може да бъде експлоатирана само при използване на стратегия за компресия, основана на фиксирани кодове на Хафман. Подобна стратегия се избира при явно включване в кода на опцията Z_FIXED (пример на последователност, която води до срив при използване на опцията Z_FIXED). Съдейки по кода, стратегията Z_FIXED също може да бъде избрана автоматично, ако изчислените за данните оптимални и статични дървета имат еднакъв размер.
Все още не е ясно дали могат да бъдат определени условия за експлоатация на уязвимостта при използване на стратегията за компресия Z_DEFAULT_STRATEGY, която се прилага по подразбиране. Ако не, уязвимостта ще бъде ограничена до отделни специфични системи, в които явно се прилага опцията Z_FIXED. Ако да, щетите от уязвимостта могат да бъдат много значителни, тъй като библиотеката zlib е де факто стандарт и се използва в много популярни проекти, включително ядрото на Linux, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg, rpm, Git, PostgreSQL, MySQL и др.
Източник: opennet.ru
