From mdounin на mdounin.ru Tue Feb 16 16:12:56 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 16 Feb 2021 19:12:56 +0300 Subject: [nginx-ru-announce] nginx-1.19.7 Message-ID: <20210216161256.GJ77619@mdounin.ru> Изменения в nginx 1.19.7 16.02.2021 *) Изменение: обработка соединений в HTTP/2 была изменена и теперь более соответствует HTTP/1.x; директивы http2_recv_timeout, http2_idle_timeout и http2_max_requests упразднены, вместо них следует использовать директивы keepalive_timeout и keepalive_requests. *) Изменение: директивы http2_max_field_size и http2_max_header_size упразднены, вместо них следует использовать директиву large_client_header_buffers. *) Добавление: теперь при исчерпании свободных соединений nginx закрывает не только keepalive-соединения, но и соединения в lingering close. *) Исправление: в логах могли появляться сообщения "zero size buf in output", если бэкенд возвращал некорректный ответ при небуферизированном проксировании; ошибка появилась в 1.19.1. *) Исправление: при использовании директивы return вместе с image_filter или xslt_stylesheet HEAD-запросы обрабатывались некорректно. *) Исправление: в директиве add_trailer. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Mar 9 15:42:51 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 9 Mar 2021 18:42:51 +0300 Subject: [nginx-ru-announce] nginx-1.19.8 Message-ID: Изменения в nginx 1.19.8 09.03.2021 *) Добавление: в директиве proxy_cookie_flags теперь флаги можно задавать с помощью переменных. *) Добавление: параметр proxy_protocol в директиве listen, директивы proxy_protocol и set_real_ip_from в почтовом прокси-сервере. *) Исправление: HTTP/2-соединения сразу закрывались при использовании "keepalive_timeout 0"; ошибка появилась в 1.19.7. *) Исправление: некоторые ошибки логгировались как неизвестные, если nginx был собран с glibc 2.32. *) Исправление: в методе обработки соединений eventport. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Mar 30 15:00:51 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 30 Mar 2021 18:00:51 +0300 Subject: [nginx-ru-announce] nginx-1.19.9 Message-ID: Изменения в nginx 1.19.9 30.03.2021 *) Исправление: nginx не собирался с почтовым прокси-сервером, но без модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8. *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки "upstream sent response body larger than indicated content length"; ошибка появилась в 1.19.1. *) Исправление: если клиент закрывал соединение в момент отбрасывания тела запроса, nginx мог не закрыть соединение до истечения keepalive-таймаута. *) Исправление: при ожидании задержки limit_req или auth_delay, а также при работе с бэкендами nginx мог не обнаружить, что соединение уже закрыто клиентом. *) Исправление: в методе обработки соединений eventport. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Apr 13 15:42:07 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 13 Apr 2021 18:42:07 +0300 Subject: [nginx-ru-announce] nginx-1.19.10 Message-ID: Изменения в nginx 1.19.10 13.04.2021 *) Изменение: в директиве keepalive_requests значение по умолчанию изменено на 1000. *) Добавление: директива keepalive_time. *) Добавление: переменная $connection_time. *) Изменение: при использовании zlib-ng в логах появлялись сообщения "gzip filter failed to use preallocated memory". -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Apr 20 14:52:51 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 20 Apr 2021 17:52:51 +0300 Subject: [nginx-ru-announce] nginx-1.20.0 Message-ID: Изменения в nginx 1.20.0 20.04.2021 *) Стабильная ветка 1.20.x. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue May 25 15:37:34 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 25 May 2021 18:37:34 +0300 Subject: [nginx-ru-announce] nginx-1.21.0 Message-ID: Изменения в nginx 1.21.0 25.05.2021 *) Безопасность: при использовании директивы resolver во время обработки ответа DNS-сервера могла происходить перезапись одного байта памяти, что позволяло атакующему, имеющему возможность подделывать UDP-пакеты от DNS-сервера, вызвать падение рабочего процесса или, потенциально, выполнение произвольного кода (CVE-2021-23017). *) Добавление: директивы proxy_ssl_certificate, proxy_ssl_certificate_key, grpc_ssl_certificate, grpc_ssl_certificate_key, uwsgi_ssl_certificate и uwsgi_ssl_certificate_key поддерживают переменные. *) Добавление: директива max_errors в почтовом прокси-сервере. *) Добавление: почтовый прокси-сервер поддерживает POP3 и IMAP pipelining. *) Добавление: параметр fastopen директивы listen в модуле stream. Спасибо Anbang Wen. *) Исправление: специальные символы не экранировались при автоматическом перенаправлении с добавлением завершающего слэша. *) Исправление: при использовании SMTP pipelining соединения с клиентами в почтовом прокси-сервере могли неожиданно закрываться. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue May 25 15:38:05 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 25 May 2021 18:38:05 +0300 Subject: [nginx-ru-announce] nginx-1.20.1 Message-ID: Изменения в nginx 1.20.1 25.05.2021 *) Безопасность: при использовании директивы resolver во время обработки ответа DNS-сервера могла происходить перезапись одного байта памяти, что позволяло атакующему, имеющему возможность подделывать UDP-пакеты от DNS-сервера, вызвать падение рабочего процесса или, потенциально, выполнение произвольного кода (CVE-2021-23017). -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue May 25 15:39:51 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 25 May 2021 18:39:51 +0300 Subject: [nginx-ru-announce] nginx security advisory (CVE-2021-23017) Message-ID: Hello! В nginx resolver была обнаружена ошибка, которая позволяла с помощью специально созданного DNS-ответа вызвать перезапись одного байта памяти, что в свою очередь могло вызвать крах рабочего процесса, а также потенциально могло приводить к выполнению произвольного кода (CVE-2021-23017). Проблеме подвержен nginx, если директива resolver используется в конфигурационном файле. При этом атака возможна только в случае, если атакующий имеет возможность подделывать UDP-пакеты от DNS-сервера. Проблеме подвержен nginx 0.6.18 - 1.20.0. Проблема исправлена в nginx 1.21.0, 1.20.1. Патч, исправляющий проблему, доступен тут: http://nginx.org/download/patch.2021.resolver.txt Спасибо Luis Merino, Markus Vervier, Eric Sesterhenn, X41 D-Sec GmbH. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Jul 6 15:16:32 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 6 Jul 2021 18:16:32 +0300 Subject: [nginx-ru-announce] nginx-1.21.1 Message-ID: Изменения в nginx 1.21.1 06.07.2021 *) Изменение: теперь nginx для метода CONNECT всегда возвращает ошибку. *) Изменение: теперь nginx всегда возвращает ошибку, если в запросе одновременно присутствуют строки заголовка "Content-Length" и "Transfer-Encoding". *) Изменение: теперь nginx всегда возвращает ошибку, если в строке запроса используются пробелы или управляющие символы. *) Изменение: теперь nginx всегда возвращает ошибку, если в имени заголовка используются пробелы или управляющие символы. *) Изменение: теперь nginx всегда возвращает ошибку, если в строке "Host" заголовка запроса используются пробелы или управляющие символы. *) Изменение: оптимизация тестирования конфигурации при использовании большого количества listen-сокетов. *) Исправление: nginx не экранировал символы """, "<", ">", "\", "^", "`", "{", "|", и "}" при проксировании с изменением URI запроса. *) Исправление: SSL-переменные могли быть пустыми при записи в лог; ошибка появилась в 1.19.5. *) Исправление: keepalive-соединения с gRPC-бэкендами могли не закрываться после получения GOAWAY-фрейма. *) Исправление: уменьшено потребление памяти для долгоживущих запросов при проксировании с использованием более 64 буферов. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Aug 31 15:40:22 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 31 Aug 2021 18:40:22 +0300 Subject: [nginx-ru-announce] nginx-1.21.2 Message-ID: Изменения в nginx 1.21.2 31.08.2021 *) Изменение: теперь nginx возвращает ошибку, если в запросе по протоколу HTTP/1.0 присутствует строка заголовка "Transfer-Encoding". *) Изменение: экспортные шифры больше не поддерживаются. *) Добавление: совместимость с OpenSSL 3.0. *) Добавление: теперь серверу аутентификации почтового прокси-сервера передаются строки заголовка "Auth-SSL-Protocol" и "Auth-SSL-Cipher". Спасибо Rob Mueller. *) Добавление: API для обработки тела запроса теперь позволяет буферизировать обрабатываемые данные. *) Исправление: SSL-соединения к бэкендам в модуле stream могли зависать после SSL handshake. *) Исправление: уровень безопасности, доступный в OpenSSL 1.1.0 и новее, не учитывался при загрузке сертификатов сервера, если был задан через "@SECLEVEL=N" в директиве ssl_ciphers. *) Исправление: SSL-соединения с gRPC-бэкендами могли зависать, если использовались методы select, poll или /dev/poll. *) Исправление: при использовании HTTP/2 тело запроса всегда записывалось на диск, если в запросе не было строки заголовка "Content-Length". -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Sep 7 15:32:20 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 7 Sep 2021 18:32:20 +0300 Subject: [nginx-ru-announce] nginx-1.21.3 Message-ID: Изменения в nginx 1.21.3 07.09.2021 *) Изменение: оптимизация чтения тела запроса при использовании HTTP/2. *) Исправление: во внутреннем API для обработки тела запроса при использовании HTTP/2 и буферизации обрабатываемых данных. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Nov 2 15:09:32 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 2 Nov 2021 18:09:32 +0300 Subject: [nginx-ru-announce] nginx-1.21.4 Message-ID: Изменения в nginx 1.21.4 02.11.2021 *) Изменение: поддержка NPN вместо ALPN для установления HTTP/2-соединений упразднена. *) Изменение: теперь nginx закрывает SSL соединение, если клиент использует ALPN, но nginx не поддерживает ни один из присланных клиентом протоколов. *) Изменение: в директиве sendfile_max_chunk значение по умолчанию изменено на 2 мегабайта. *) Добавление: директива proxy_half_close в модуле stream. *) Добавление: директива ssl_alpn в модуле stream. *) Добавление: переменная $ssl_alpn_protocol. *) Добавление: поддержка SSL_sendfile() при использовании OpenSSL 3.0. *) Добавление: директива mp4_start_key_frame в модуле ngx_http_mp4_module. Спасибо Tracey Jaquith. *) Исправление: в переменной $content_length при использовании chunked transfer encoding. *) Исправление: при получении ответа некорректной длины от проксируемого бэкенда nginx мог тем не менее закэшировать соединение. Спасибо Awdhesh Mathpal. *) Исправление: некорректные заголовки от бэкендов логгировались на уровне info вместо error; ошибка появилась в 1.21.1. *) Исправление: при использовании HTTP/2 и директивы aio_write запросы могли зависать. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Nov 16 14:59:40 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 16 Nov 2021 17:59:40 +0300 Subject: [nginx-ru-announce] nginx-1.20.2 Message-ID: Изменения в nginx 1.20.2 16.11.2021 *) Добавление: совместимость с OpenSSL 3.0. *) Исправление: SSL-переменные могли быть пустыми при записи в лог; ошибка появилась в 1.19.5. *) Исправление: keepalive-соединения с gRPC-бэкендами могли не закрываться после получения GOAWAY-фрейма. *) Исправление: SSL-соединения к бэкендам в модуле stream могли зависать после SSL handshake. *) Исправление: SSL-соединения с gRPC-бэкендами могли зависать, если использовались методы select, poll или /dev/poll. *) Исправление: в переменной $content_length при использовании chunked transfer encoding. *) Исправление: при использовании HTTP/2 и директивы aio_write запросы могли зависать. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Dec 28 15:42:13 2021 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 28 Dec 2021 18:42:13 +0300 Subject: [nginx-ru-announce] nginx-1.21.5 Message-ID: Изменения в nginx 1.21.5 28.12.2021 *) Изменение: теперь nginx по умолчанию собирается с библиотекой PCRE2. *) Изменение: теперь nginx всегда использует sendfile(SF_NODISKIO) на FreeBSD. *) Добавление: поддержка sendfile(SF_NOCACHE) на FreeBSD. *) Добавление: переменная $ssl_curve. *) Исправление: при использовании HTTP/2 без SSL вместе с директивами sendfile и aio соединения могли зависать. -- Maxim Dounin http://nginx.org/