Hello!
В nginx resolver было обнаружено несколько проблем, которые могут
позволить атакующему вызвать крах рабочего процесса, а также
потенциально могут иметь другие последствия:
- При обработке ответов DNS-сервера могло происходить разыменование
некорректного адреса, что позволяло атакующему, имеющему возможность
подделывать UDP-пакеты от DNS-сервера, вызвать крах рабочего процесса
(CVE-2016-0742).
- При обработке CNAME-записей могло произойти обращение к ранее
освобождённой памяти. Это позволяло атакующему, имеющему возможность
инициировать преобразование произвольных имён в адреса, вызвать крах
рабочего процесса, а также потенциально могло иметь другие последствия
(CVE-2016-0746).
- При обработке CNAMЕ-записей не во всех случаях проверялось ограничение
на максимальное количество записей в цепочке, что позволяло атакующему,
имеющему возможность инициировать преобразование произвольных имён
в адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
(CVE-2016-0747).
Проблемам подвержен nginx 0.6.18 - 1.9.9, если в конфигурации используется
директива resolver.
Проблемы исправлены в nginx 1.9.10, 1.8.1.
--
Maxim Dounin
http://nginx.org/
Изменения в nginx 1.8.1 26.01.2016
*) Безопасность: при использовании директивы resolver во время обработки
ответов DNS-сервера могло происходить разыменование некорректного
адреса, что позволяло атакующему, имеющему возможность подделывать
UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
процессе (CVE-2016-0742).
*) Безопасность: при использовании директивы resolver во время обработки
CNAME-записей могло произойти обращение к ранее освобождённой памяти,
что позволяло атакующему, имеющему возможность инициировать
преобразование произвольных имён в адреса, вызвать segmentation fault
в рабочем процессе, а также потенциально могло иметь другие
последствия (CVE-2016-0746).
*) Безопасность: при использовании директивы resolver во время обработки
CNAME-записей не во всех случаях проверялось ограничение на
максимальное количество записей в цепочке, что позволяло атакующему,
имеющему возможность инициировать преобразование произвольных имён в
адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
(CVE-2016-0747).
*) Исправление: параметр proxy_protocol директивы listen не работал,
если не был указан в первой директиве listen для данного
listen-сокета.
*) Исправление: nginx мог не запускаться на некоторых старых версиях
Linux; ошибка появилась в 1.7.11.
*) Исправление: при совместном использовании директив try_files и alias
внутри location'а, заданного регулярным выражением, в рабочем
процессе мог произойти segmentation fault; ошибка появилась в 1.7.1.
*) Исправление: директива try_files внутри вложенного location'а,
заданного регулярным выражением, работала неправильно, если во
внешнем location'е использовалась директива alias.
*) Исправление: при использовании кэша в логах могли появляться
сообщения "header already sent"; ошибка появилась в 1.7.5.
*) Исправление: при использовании различных настроек ssl_session_cache в
разных виртуальных серверах в рабочем процессе мог произойти
segmentation fault.
*) Исправление: директива expires могла не срабатывать при использовании
переменных.
*) Исправление: если nginx был собран с модулем ngx_http_spdy_module,
протокол SPDY мог быть использован клиентом, даже если не был указан
параметр spdy директивы listen.
--
Maxim Dounin
http://nginx.org/
Изменения в nginx 1.9.10 26.01.2016
*) Безопасность: при использовании директивы resolver во время обработки
ответов DNS-сервера могло происходить разыменование некорректного
адреса, что позволяло атакующему, имеющему возможность подделывать
UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
процессе (CVE-2016-0742).
*) Безопасность: при использовании директивы resolver во время обработки
CNAME-записей могло произойти обращение к ранее освобождённой памяти,
что позволяло атакующему, имеющему возможность инициировать
преобразование произвольных имён в адреса, вызвать segmentation fault
в рабочем процессе, а также потенциально могло иметь другие
последствия (CVE-2016-0746).
*) Безопасность: при использовании директивы resolver во время обработки
CNAME-записей не во всех случаях проверялось ограничение на
максимальное количество записей в цепочке, что позволяло атакующему,
имеющему возможность инициировать преобразование произвольных имён в
адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
(CVE-2016-0747).
*) Добавление: параметр auto директивы worker_cpu_affinity.
*) Исправление: параметр proxy_protocol директивы listen не работал с
IPv6 listen-сокетами.
*) Исправление: при использовании директивы keepalive соединения к
бэкендам могли кэшироваться некорректно.
*) Исправление: после перенаправления запроса с помощью X-Accel-Redirect
при проксировании использовался HTTP-метод оригинального запроса.
--
Maxim Dounin
http://nginx.org/