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

1 августа 2019 г.,

Django 2.2.4 исправляет проблемы безопасности и несколько ошибок в 2.2.3.

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

Если django.utils.text.Truncator «s chars() и words() методы прошли 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 и for подвергались SQL-инъекции с использованием специально созданного словаря с расширением словаря, как передано в .key lookups HStoreField **kwargs QuerySet.filter()

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

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

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

Исправления

  • Исправлена регрессия в Django 2.2 при заказе QuerySet.union() , intersection() или difference() по типу поля более одного раза приводит к неправильному упорядочению используется ( # 30628 ).
  • Исправлен сбой миграции в PostgreSQL при добавлении ограничения проверки с contains поиском на DateRangeField или DateTimeRangeField , если правая часть выражения имеет тот же тип ( # 30621 ).
  • Исправлена ​​регрессия в Django 2.2, когда автоматическое перезагрузка вылетает, если путь к файлу содержит символы нуля ( '\x00' ) ( # 30506 ).
  • Исправлена ​​регрессия в Django 2.2, когда автозагрузчик аварийно завершал работу, если каталог перевода не может быть разрешен ( # 30647 ).

Copyright ©2021 All rights reserved