PCRE2 10.48

1000px.jpg

После 10 месяцев разработки состоялся выпуск 10.48 библиотеки PCRE2, реализующей PERL-совместимые регулярные выражения, с исправлениями ошибок безопасности, а также с исправлениями и небольшими улучшениями в работе библиотеки. Проект написан на языке C и распространяется по лицензии BSD 3.

В состав библиотеки также входит консольная утилита pcre2grep.

Основные изменения

Исправлены уязвимости
  • GHSA-2p8c-ff85-vh9x: выход за пределы диапазона в некоторых случаях в функциях pcre2_jit_compile() и pcre2_match();
  • GHSA-q8g2-wprr-34m9: возможный выход за границы выделенной памяти в функции pcre2_convert() на платформах с 32-битным типом size_t;
  • GHSA-3r4p-g7gg-ppmf: запись за границы выделенной памяти при DFA-сопоставлении, если использовалось ограничение на размер «кучи»; также исправлены возможные переполнения целых чисел, которые могли приводить к недостаточному выделению памяти;
  • GHSA-fmgr-6ggq-9859: добавлены проверки границ для предотвращения нескольких случаев целочисленного переполнения при компиляции шаблонов на 32-битных процессорах, которые могли привести к недостаточному выделению памяти с последующей записью за пределы выделенной области;
  • GHSA-9qww-pwc4–77qq: чтение за пределами буфера при обратном сканировании некорректных UTF-данных с ошибкой PCRE2_MATCH_INVALID_UTF;
  • GHSA-q7rw-r7qq-2hx6: утечка памяти с последующим освобождением в функции pcre2_jit_match();
  • GHSA-q7rw-r7qq-2hx6, связанная с двумя неинициализированными байтами в функции pcre2_serialize_encode();
Исправлены проблемы сопоставления
  • неправильно скомпилированные классы символов Unicode, объединяющие символы с кодами U+00FF и ниже, с символами с кодами U+0100 и U+8000 и выше;
  • при использовании JIT:
    • ошибка сопоставления, влияющая на сканирование префиксов в шаблонах с повторениями;
    • ошибка сопоставления при обратном просмотре переменной длины;
    • некорректный сдвиг символов с ошибкой PCRE2_MATCH_INVALID_UTF в режимах UTF-8 и UTF-16, что могло приводить к пропуску соседних символов.
Другие изменения
  • цикл поддержки изменён на пятилетний, с публикацией патчей обратной совместимости для устранения уязвимостей и исправлений высокой степени серьёзности в старых версиях библиотеки;
  • поддержка Unicode обновлена до версии Unicode 17.0;
  • множество мелких исправлений, в том числе усовершенствования функции pcre2_substitute(), оптимизация сопоставления обратных ссылок и исправления в функции pcre2_compile();
  • множество мелких исправлений при сборке с CMake и Zig;
  • ветка git по умолчанию переименована с master в main.

>>> Полный список изменений

>>> Подробности на GitHub

©  Linux.org.ru