Выпуск http-сервера Apache 2.4.26 с полноценной поддержкой HTTP/2

Доступен релиз HTTP-сервера Apache 2.4.26, в котором представлено 63 изменения, 22 из которых связаны с исправлениями в модуле mod_http2.

Из изменений можно отметить:

  • C модуля mod_http2 снята метка экспериментальной разработки, реализация протокола HTTP/2 отныне признана готовой для повсеместного применения;
  • Добавлен новый модуль mod_brotli для сжатия с использованием алгоритма Brotli (RFC 7932);
  • В файле конфигурации обеспечено выполнение вложенных блоков If/ElseIf/Else;
  • В mod_lua добавлена поддержка Lua 5.3;
  • Изменено поведение mod_rewrite: если подстановка является полным URL, а схема/хост/порт совпадают с текущим виртуальным хостом, то компонент пути в URL больше не интерпретируется как локальны путь, если он присутствует в файловой системе. Для возвращения старого поведения добавлена опция «RewriteOption LegacyPrefixDocRoot»;
  • В mod_rewrite добавлен флаг 'BNP' (backreferences-no-plus), включающий замену пробелов в обратных ссылках RewriteRule на »%20» вместо »+»;
  • В mod_rewrite добавлена возможность ограничения экранирования определённых символов через указание их в флаге «B»;
  • В mod_env добавлен вывод предупреждения для директивы 'SetEnv', если в имени переменной окружения указан символ '=';
  • В mod_proxy_http2 добавлена поддержка заголовков Reverse Proxy Request;
  • В mod_proxy_fcgi добавлена директива ProxyFCGISetEnvIf для изменения переменных окружения CGI на стадии до вызова FastCGI;
  • В mod_proxy разрешено применение переменной окружения «no-proxy» в качестве альтернативы выражению «ProxyPass /path!»;
  • В mod_proxy_fcgi возвращено старое поведение (2.4.20), оставляющее префикс «proxy: fcgi://» в переменной окружения SCRIPT_FILENAME;
  • В mod_proxy_http2 добавлена директива ProxyPreserverHost;
  • В mod_proxy_wstunnel добавлен параметр «upgrade», разрешающий обновление до другого протокола;
  • Проведена работа по увеличению производительности, качества буферизации и динамического регулирования потоком в mod_http2;
  • В mod_http2 директива MaxKeepAliveRequests теперь ограничивает число повторных использований slave-соединений;
  • В mod_http2 добавлена поддержка директивы MergeTrailers;
  • В mod_autoindex добавлена опция «IndexOptions UseOldDateFormat», позволяющая использовать формат Last Modified как в Apache 2.2;
  • В парсер выражений добавлена подстановка %{REMOTE_PORT};
  • Во вложенных SSI-выражениях подстановка %{DOCUMENT_URI} теперь всегда указывает на URI оригинального запроса, а не на URI вложенного документа;
  • В mod_ssl добавлена поддержка OpenSSL 1.1.0;
  • Устранено 5 уязвимостей:
    • CVE-2017–3167 — обход аутентификации при использовании ap_get_basic_auth_pw () в сторонних модулях;
    • CVE-2017–3169 — инициирование краха через отправку запроса HTTPS из-за разыменования нулевого указателя в mod_ssl;
    • CVE-2017–7659 — инициирование краха через отправку запроса HTTP/2 из-за разыменования нулевого указателя в mod_http2;
    • CVE-2017–7668 — чтение вне границ буфера в функции ap_find_token () может привести к краху при обработке специально оформленных заголовков запроса;
    • CVE-2017–7679 — чтение вне границ буфера в mod_mime может привести к чтению байта из области за пределами выделенного буфера при обработке специально оформленного заголовка Content-Type. Интересно, что о проблеме было сообщено ещё в ноябре 2015 года, а исправление внесено только сейчас.

© OpenNet