Кибербезопасность

zlib 1.4: 14 уязвимостей закрыто, критическую CVE-2026-4738 сочли переоценённой

Вышла библиотека zlib 1.4: закрыто 14 уязвимостей, включая переполнение буфера в gzwrite() и запись до 8 МБ за пределы буфера в inflateGetDictionary(). Часть изменений ломает совместимость — статически слинкованные сборки придётся пересобрать.

Что случилось

Вышел zlib 1.4 — первое крупное обновление библиотеки сжатия после версии 1.3.2. В выпуске закрыто 14 уязвимостей, а изменения в поведении затрагивают сборку и приложения, которые годами полагались на прежние побочные эффекты.

Детали

Одной из проблем присвоен критический уровень: CVE-2026-4738 — выход за границы при работе с указателями в contrib/infback9. В сопроводительных заметках автор библиотеки Марк Адлер отмечает, что оценка завышена: указатели возвращаются в допустимые границы до использования, ни один известный компилятор не ломает этот код, но на оборудовании с контролем возможностей вроде CHERI срабатывание возможно.

  • CVE-2026-85091 — переполнение буфера в gzwrite() при неблокирующем режиме;
  • inflateGetDictionary() мог записать до 8 МБ за пределы переданного буфера в 32 КБ; проблема есть в 1.3.1 и 1.3.2;
  • inflateSync() до определения размера окна выделял окно в один байт, которое затем переполнялось;
  • inflatePrime() мог заставить inflate() читать данные до начала входного буфера;
  • повторные вызовы deflatePrime() писали за границу pending-буфера;
  • inflateBack() не распознавал слишком далёкие расстояния и копировал в вывод неинициализированную память;
  • в minizip закрыты двойное освобождение в block_central_name(), разыменование NULL в zipAlreadyThere(), чтение значений Zip64 вне extra-поля и создание каталогов вне каталога распаковки, а на Windows — запись файлов в произвольное место.

Значительная часть находок помечена идентификаторами TOB-ZLIB — это результаты аудита, который проводила Trail of Bits. Часть проблем нашли сторонние исследователи; ошибку в gzseek(), например, обнаружила модель Claude Opus 5.5. Ошибки в miniunz, связанные с путями, давно известны как класс: распаковка архива из ненадёжного источника и раньше была способом выйти за пределы каталога.

Изменения совместимости: минимальная версия CMake поднята до 3.15, на MSVC библиотеки переименованы в libz, z_off_t снова long, deflateReset() теперь действительно сбрасывает gzip-заголовок, raw deflate на границе выходного буфера возвращает Z_STREAM_END, а gzopen() с флагом x на платформах без O_EXCL завершается ошибкой вместо усечения файла.

Что это значит

zlib лежит в основе gzip, PNG, HTTP-сжатия, почтовых серверов, СУБД и половины системных утилит, поэтому формально локальная уязвимость превращается в сетевую там, где данные из сети распаковываются автоматически. Обновлять стоит не только сам пакет: статически слинкованные сборки нужно пересобрать, иначе внутри них останется старая копия. При обновлении в дистрибутиве имеет смысл прочитать список изменений ABI — часть приложений, собранных под 1.3.2, потребует пересборки из-за возврата z_off_t к long.

Комментарии 0

Комментариев пока нет — будьте первым.

Оставить комментарий

Имя и текст — этого достаточно. Комментарий появится сразу; подозрительные сообщения уходят на проверку.

Сдвиньте ползунок вправо для проверки
Спам и реклама блокируются автоматически.
Читайте также

Похожие публикации

10 Ноя

Zyxel GS1900: почти 1000 коммутаторов взломаны через дыру, которую не закрыл патч

Binarly нашла в прошивке Zyxel GS1900 уязвимость CVE-2026-107441: неавторизованный запрос к веб-интерфейсу даёт root. Июньское обновление эту дыру не закрывало, а GreyNoise насчитала 996 скомпрометированных коммутаторов в 48 странах.

→
10 Ноя

SSHole в OpenSSH: вход без пароля на Alpine и первые атаки через 40 часов после патча

Уязвимость CVE-2026-123158 позволяет войти в OpenSSH на системах с musl без пароля: достаточно аккаунта со звёздочкой в поле хеша. Патч вышел 5 ноября, PoC — через четыре часа, первая успешная эксплуатация зафиксирована 7 ноября.

→
10 Ноя

N-able отключила N-central по всему миру после публикации 30+ уязвимостей нулевого дня

Исследователь выложил в открытый доступ более 30 эксплоитов для платформы удалённого управления N-central, включая цепочку от XXE без аутентификации до выполнения команд. N-able выключила облачные окружения в трёх регионах и просила клиентов остановить серверы.

→