• 3.2
  • 5.0
  • 6.1
  • Версия документации: 3.1

Примечания к выпуску Django 1.11.23

1 августа 2019 г.

Django 1.11.23 исправляет проблемы безопасности в версии 1.11.22.

CVE-2019-14232: возможность отказа в обслуживании в django.utils.text.Truncator.

Если методам chars() и words() объекта django.utils.text.Truncator был передан аргумент html=True, они очень медленно оценивали определенные входные данные из-за катастрофической уязвимости обратного отслеживания в регулярном выражении. Методы chars() и words() используются для реализации фильтров шаблонов truncatechars_html и truncatewords_html, которые, таким образом, были уязвимы.

Регулярные выражения, используемые Truncator, были упрощены, чтобы избежать потенциальных проблем с возвратом. Как следствие, конечные знаки препинания теперь могут иногда включаться в усеченный вывод.

CVE-2019-14233: возможность отказа в обслуживании в strip_tags()

Из-за поведения базового HTMLParser, django.utils.html.strip_tags() будет очень медленно оценивать определенные входные данные, содержащие большие последовательности вложенных неполных HTML-объектов. Метод Strip_tags() используется для реализации соответствующего шаблонного фильтра striptags, который, таким образом, также был уязвим.

strip_tags() теперь избегает рекурсивных вызовов HTMLParser, когда процесс удаления тегов, но обязательно неполных объектов HTML, прекращается.

Помните, что НЕ дается абсолютно НИКАКОЙ гарантии того, что результаты strip_tags() будут безопасными для HTML. Поэтому НИКОГДА не отмечайте безопасным результат вызова strip_tags() без его предварительного экранирования, например, с помощью django.utils.html.escape().

CVE-2019-14234: возможность внедрения SQL при поиске по ключу и индексу для JSONField/HStoreField.

Key and index lookups for JSONField and key lookups for HStoreField were subject to SQL injection, using a suitably crafted dictionary, with dictionary expansion, as the **kwargs passed to QuerySet.filter().

CVE-2019-14235: потенциальное нехватка памяти в django.utils.encoding.uri_to_iri()

При передаче определенных входных данных django.utils.encoding.uri_to_iri() может привести к значительному использованию памяти из-за чрезмерной рекурсии при повторном процентном кодировании недопустимых последовательностей октетов UTF-8.

uri_to_iri() теперь позволяет избежать рекурсии при повторном процентном кодировании недопустимых последовательностей октетов UTF-8.

Back to Top