From mdounin на mdounin.ru Tue Jan 24 14:21:21 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 24 Jan 2017 17:21:21 +0300 Subject: [nginx-ru-announce] nginx-1.11.9 Message-ID: <20170124142121.GF24349@mdounin.ru> Изменения в nginx 1.11.9 24.01.2017 *) Исправление: при использовании модуля stream nginx мог нагружать процессор; ошибка появилась в 1.11.5. *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере можно было использовать, даже если он не был разрешён в конфигурации. *) Исправление: при использовании директивы ssl_verify_client модуля stream в рабочем процессе мог произойти segmentation fault. *) Исправление: директива ssl_verify_client модуля stream могла не работать. *) Исправление: при исчерпании рабочим процессом свободных соединений keepalive-соединения могли закрываться излишне агрессивно. Спасибо Joel Cunningham. *) Исправление: при использовании директивы sendfile на FreeBSD и macOS мог возвращаться некорректный ответ; ошибка появилась в 1.7.8. *) Исправление: при использовании директивы aio_write ответ мог сохраняться в кэш не полностью. *) Исправление: при использовании директивы aio_write могла происходить утечка сокетов. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Jan 31 15:12:59 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 31 Jan 2017 18:12:59 +0300 Subject: [nginx-ru-announce] nginx-1.10.3 Message-ID: <20170131151258.GI46625@mdounin.ru> Изменения в nginx 1.10.3 31.01.2017 *) Исправление: в директиве add_after_body при использовании совместно с директивой sub_filter. *) Исправление: unix domain listen-сокеты могли не наследоваться при обновлении исполняемого файла на Linux. *) Исправление: плавное завершение старых рабочих процессов могло занимать бесконечное время при использовании HTTP/2. *) Исправление: при использовании HTTP/2 и директив limit_req или auth_request тело запроса могло быть повреждено; ошибка появилась в 1.10.2. *) Исправление: при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault; ошибка появилась в 1.10.2. *) Исправление: при использовании директивы sendfile на FreeBSD и macOS мог возвращаться некорректный ответ; ошибка появилась в 1.7.8. *) Исправление: при использовании директивы aio_write ответ мог сохраняться в кэш не полностью. *) Исправление: при использовании директивы aio_write могла происходить утечка сокетов. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Feb 14 15:52:30 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 14 Feb 2017 18:52:30 +0300 Subject: [nginx-ru-announce] nginx-1.11.10 Message-ID: <20170214155230.GB46625@mdounin.ru> Изменения в nginx 1.11.10 14.02.2017 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные ответы будут загружены заново. *) Добавление: поддержка расширений stale-while-revalidate и stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда. *) Добавление: директивы proxy_cache_background_update, fastcgi_cache_background_update, scgi_cache_background_update и uwsgi_cache_background_update. *) Добавление: теперь nginx может кэшировать ответы со строкой Vary заголовка длиной до 128 символов (вместо 42 символов в предыдущих версиях). *) Добавление: параметр build директивы server_tokens. Спасибо Tom Thorogood. *) Исправление: при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса в логах могли появляться сообщения "[crit] SSL_write() failed". *) Исправление: модуль ngx_http_slice_module не работал в именованных location'ах. *) Исправление: при использовании AIO после перенаправления запроса с помощью X-Accel-Redirect в рабочем процессе мог произойти segmentation fault. *) Исправление: уменьшено потребление памяти для долгоживущих запросов, использующих сжатие. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Mar 21 15:19:07 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 21 Mar 2017 18:19:07 +0300 Subject: [nginx-ru-announce] nginx-1.11.11 Message-ID: <20170321151907.GK13617@mdounin.ru> Изменения в nginx 1.11.11 21.03.2017 *) Добавление: директива worker_shutdown_timeout. *) Добавление: улучшения в скриптах подсветки синтаксиса для vim. Спасибо Wei-Ko Kao. *) Исправление: при попытке установить переменную $limit_rate в пустую строку в рабочем процессе мог произойти segmentation fault. *) Исправление: директивы proxy_cache_background_update, fastcgi_cache_background_update, scgi_cache_background_update и uwsgi_cache_background_update могли работать некорректно, если использовалась директива if. *) Исправление: в рабочем процессе мог произойти segmentation fault, если количество large_client_header_buffers в виртуальном сервере отличалось от такового в сервере по умолчанию. *) Исправление: в почтовом прокси-сервере. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Fri Mar 24 15:19:15 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 24 Mar 2017 18:19:15 +0300 Subject: [nginx-ru-announce] nginx-1.11.12 Message-ID: <20170324151915.GL13617@mdounin.ru> Изменения в nginx 1.11.12 24.03.2017 *) Исправление: nginx мог нагружать процессор; ошибка появилась в 1.11.11. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Apr 4 15:15:49 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 4 Apr 2017 18:15:49 +0300 Subject: [nginx-ru-announce] nginx-1.11.13 Message-ID: <20170404151549.GK13617@mdounin.ru> Изменения в nginx 1.11.13 04.04.2017 *) Добавление: параметр http_429 в директивах proxy_next_upstream, fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream. Спасибо Piotr Sikora. *) Исправление: в обработке ошибок выделения памяти. *) Исправление: при использовании директив sendfile и timer_resolution на Linux запросы могли зависать. *) Исправление: при использовании с подзапросами директив sendfile и aio_write запросы могли зависать. *) Исправление: в модуле ngx_http_v2_module. Спасибо Piotr Sikora. *) Исправление: при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault. *) Исправление: запросы могли зависать при использовании с подзапросами директив limit_rate, sendfile_max_chunk, limit_req или метода $r->sleep() встроенного перла. *) Исправление: в модуле ngx_http_slice_module. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Wed Apr 12 15:19:42 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 12 Apr 2017 18:19:42 +0300 Subject: [nginx-ru-announce] nginx-1.12.0 Message-ID: <20170412151942.GY13617@mdounin.ru> Изменения в nginx 1.12.0 12.04.2017 *) Стабильная ветка 1.12.x. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Apr 25 14:32:54 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 25 Apr 2017 17:32:54 +0300 Subject: [nginx-ru-announce] nginx-1.13.0 Message-ID: <20170425143254.GM43932@mdounin.ru> Изменения в nginx 1.13.0 25.04.2017 *) Изменение: теперь SSL renegotiation допускается в соединениях к бэкендам. *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом прокси-сервере и модуле stream. *) Добавление: директивы return и error_page теперь могут использоваться для возврата перенаправлений с кодом 308. Спасибо Simon Leblanc. *) Добавление: параметр TLSv1.3 в директиве ssl_protocols. *) Добавление: при логгировании сигналов теперь указывается PID отправившего сигнал процесса. *) Исправление: в обработке ошибок выделения памяти. *) Исправление: если сервер в модуле stream слушал на wildcard-адресе, исходящий адрес ответного UDP-пакета мог отличаться от адреса назначения исходного пакета. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue May 30 15:12:14 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 30 May 2017 18:12:14 +0300 Subject: [nginx-ru-announce] nginx-1.13.1 Message-ID: <20170530151214.GZ55433@mdounin.ru> Изменения в nginx 1.13.1 30.05.2017 *) Добавление: теперь в качестве параметра директивы set_real_ip_from можно указывать имя хоста. *) Добавление: улучшения в скриптах подсветки синтаксиса для vim. *) Добавление: директива worker_cpu_affinity теперь работает на DragonFly BSD. Спасибо Sepherosa Ziehau. *) Исправление: SSL renegotiation в соединениях к бэкендам не работал при использовании OpenSSL до 1.1.0. *) Изменение: nginx не собирался с Oracle Developer Studio 12.5. *) Изменение: теперь cache manager пропускает заблокированные записи при очистке кэша по max_size. *) Исправление: клиентские SSL-соединения сразу закрывались, если использовался отложенный accept и параметр proxy_protocol директивы listen. *) Исправление: в директиве proxy_cache_background_update. *) Изменение: теперь директива tcp_nodelay устанавливает опцию TCP_NODELAY перед SSL handshake. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Jun 27 15:04:29 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 27 Jun 2017 18:04:29 +0300 Subject: [nginx-ru-announce] nginx-1.13.2 Message-ID: <20170627150429.GH55433@mdounin.ru> Изменения в nginx 1.13.2 27.06.2017 *) Изменение: теперь при запросе диапазона, начинающегося с 0, из пустого файла nginx возвращает ответ 200 вместо 416. *) Добавление: директива add_trailer. Спасибо Piotr Sikora. *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась в 1.13.0. *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit. Спасибо Orgad Shaneh. *) Исправление: при использовании SSI с большим количеством подзапросов и proxy_pass с переменными в рабочем процессе мог произойти segmentation fault. *) Исправление: в модуле ngx_http_v2_module. Спасибо Piotr Sikora. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Jul 11 15:46:40 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 11 Jul 2017 18:46:40 +0300 Subject: [nginx-ru-announce] nginx-1.13.3 Message-ID: <20170711154640.GA55433@mdounin.ru> Изменения в nginx 1.13.3 11.07.2017 *) Безопасность: специально созданный запрос мог вызвать целочисленное переполнение в range-фильтре и последующую некорректную обработку запрошенных диапазонов, что потенциально могло привести к утечке конфиденциальной информации (CVE-2017-7529). -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Jul 11 15:46:57 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 11 Jul 2017 18:46:57 +0300 Subject: [nginx-ru-announce] nginx-1.12.1 Message-ID: <20170711154657.GE55433@mdounin.ru> Изменения в nginx 1.12.1 11.07.2017 *) Безопасность: специально созданный запрос мог вызвать целочисленное переполнение в range-фильтре и последующую некорректную обработку запрошенных диапазонов, что потенциально могло привести к утечке конфиденциальной информации (CVE-2017-7529). -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Jul 11 15:48:35 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 11 Jul 2017 18:48:35 +0300 Subject: [nginx-ru-announce] nginx security advisory (CVE-2017-7529) Message-ID: <20170711154835.GI55433@mdounin.ru> Hello! В range-фильтре nginx была обнаружена проблема безопасности. Специально созданный запрос мог вызвать целочисленное переполнение и последующую некорректную обработку запрошенных диапазонов, что потенциально могло привести к утечке конфиденциальной информации (CVE-2017-7529). При использовании nginx со стандартными модулями это позволяло получить заголовок кэш-файла, если ответ возвращался из кэша. В зависимости от конфигурации, заголовок кэш-файла может содержать IP-адрес бэкенда или другую конфиденциальную информацию. Кроме того, в случае использования сторонних модулей потенциально возможно, что проблема может привести к отказу в обслуживании или к отправке клиенту содержимого памяти рабочего процесса. На текущий момент о существовании подобных модулей не известно. Проблеме подвержен nginx 0.5.6 - 1.13.2. Проблема исправлена в nginx 1.13.3, 1.12.1. При использовании более старых версий в качестве временной защиты можно воспользоваться конфигурацией вида: max_ranges 1; Патч, исправляющий проблему, доступен тут: http://nginx.org/download/patch.2017.ranges.txt -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Aug 8 15:13:55 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 8 Aug 2017 18:13:55 +0300 Subject: [nginx-ru-announce] nginx-1.13.4 Message-ID: <20170808151355.GR93611@mdounin.ru> Изменения в nginx 1.13.4 08.08.2017 *) Добавление: модуль ngx_http_mirror_module. *) Исправление: клиентские соединения могли сбрасываться при тестировании конфигурации, если использовался параметр reuseport директивы listen на Linux. *) Исправление: тело запроса могло быть недоступно в подзапросах, если оно было сохранено в файл и использовалось проксирование. *) Исправление: очистка кэша по max_size не работала на Windows. *) Исправление: любое выделение разделяемой памяти на Windows требовало 4096 байт памяти. *) Исправление: при использовании директивы zone в блоке upstream на Windows рабочий процесс мог завершаться аварийно. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Sep 5 15:42:44 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 5 Sep 2017 18:42:44 +0300 Subject: [nginx-ru-announce] nginx-1.13.5 Message-ID: <20170905154244.GT93611@mdounin.ru> Изменения в nginx 1.13.5 05.09.2017 *) Добавление: переменная $ssl_client_escaped_cert. *) Исправление: директива ssl_session_ticket_key и параметр include директивы geo не работали на Windows. *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с помощью нескольких диапазонов возвращалась некорректная длина ответа. *) Исправление: директива "expires modified" и обработка строки If-Range заголовка запроса не учитывали время последнего изменения ответа, если использовалось проксирование без кэширования. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Oct 10 15:40:14 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 10 Oct 2017 18:40:14 +0300 Subject: [nginx-ru-announce] nginx-1.13.6 Message-ID: <20171010154014.GP75166@mdounin.ru> Изменения в nginx 1.13.6 10.10.2017 *) Исправление: при использовании директивы ssl_preread в модуле stream не работало переключение на следующий бэкенд. *) Исправление: в модуле ngx_http_v2_module. Спасибо Piotr Sikora. *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных платформах с 64-битным time_t. *) Исправление: в обработке дат до 1970 года и после 10000 года. *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от бэкендов не логгировались или логгировались на уровне info вместо error. *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400, не указав в логе причину. *) Исправление: в обработке повреждённых файлов кэша. *) Исправление: при кэшировании ошибок, перехваченных error_page, не учитывались заголовки управления кэшированием. *) Исправление: при использовании HTTP/2 тело запроса могло быть повреждено. *) Исправление: в обработке адресов клиентов при использовании unix domain сокетов. *) Исправление: при использовании директивы "hash ... consistent" в блоке upstream nginx нагружал процессор, если использовались большие веса и все или почти все бэкенды были недоступны. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Oct 17 13:35:13 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 17 Oct 2017 16:35:13 +0300 Subject: [nginx-ru-announce] nginx-1.12.2 Message-ID: <20171017133513.GD26836@mdounin.ru> Изменения в nginx 1.12.2 17.10.2017 *) Исправление: клиентские SSL-соединения сразу закрывались, если использовался отложенный accept и параметр proxy_protocol директивы listen. *) Исправление: клиентские соединения могли сбрасываться при тестировании конфигурации, если использовался параметр reuseport директивы listen на Linux. *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с помощью нескольких диапазонов возвращалась некорректная длина ответа. *) Исправление: при использовании директивы ssl_preread в модуле stream не работало переключение на следующий бэкенд. *) Исправление: при использовании HTTP/2 тело запроса могло быть повреждено. *) Исправление: в обработке адресов клиентов при использовании unix domain сокетов. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Nov 21 15:26:28 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 21 Nov 2017 18:26:28 +0300 Subject: [nginx-ru-announce] nginx-1.13.7 Message-ID: <20171121152628.GT62893@mdounin.ru> Изменения в nginx 1.13.7 21.11.2017 *) Исправление: в переменной $upstream_status. *) Исправление: в рабочем процессе мог произойти segmentation fault, если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос. *) Исправление: если при переконфигурации изменялся размер зоны разделяемой памяти и переконфигурация завершалась неудачно, то в главном процессе происходил segmentation fault. *) Исправление: в модуле ngx_http_fastcgi_module. *) Исправление: nginx возвращал ошибку 500, если в директиве xslt_stylesheet были заданы параметры без использования переменных. *) Изменение: при использовании варианта библиотеки zlib от Intel в лог писались сообщения "gzip filter failed to use preallocated memory". *) Исправление: директива worker_shutdown_timeout не работала при использовании почтового прокси-сервера и при проксировании WebSocket-соединений. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Dec 26 16:10:59 2017 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 26 Dec 2017 19:10:59 +0300 Subject: [nginx-ru-announce] nginx-1.13.8 Message-ID: <20171226161059.GG34136@mdounin.ru> Изменения в nginx 1.13.8 26.12.2017 *) Добавление: теперь при использовании параметра transparent директив proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind nginx автоматически сохраняет capability CAP_NET_RAW в рабочих процессах. *) Добавление: улучшения в определении размера строки кэша процессора. Спасибо Debayan Ghosh. *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim. Спасибо Геннадию Махомеду. *) Исправление: процедура обновления исполняемого файла не работала, если после завершения родительского процесса новым родительским процессом nginx'а становился процесс с PID, отличным от 1. *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал запросы с телом. *) Исправление: в директиве proxy_limit_rate при использовании с директивой keepalive. *) Исправление: при использовании "proxy_buffering off" часть ответа могла буферизироваться, если клиентское соединение использовало SSL. Спасибо Patryk Lesiewicz. *) Исправление: в директиве proxy_cache_background_update. *) Исправление: переменную вида "${name}" с именем в фигурных скобках нельзя было использовать в начале параметра не заключив весь параметр в кавычки. -- Maxim Dounin http://nginx.org/