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

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

6 марта 2018 г.

В Django 2.0.3 исправлены две проблемы безопасности и несколько ошибок в версии 2.0.2. Кроме того, включены последние переводы строк от Transifex.

CVE-2018-7536: возможность отказа в обслуживании в фильтрах шаблонов urlize и urlizetrnc.

Функция django.utils.html.urlize() чрезвычайно медленно оценивала определенные входные данные из-за катастрофических уязвимостей обратного отслеживания в двух регулярных выражениях. Функция urlize() используется для реализации фильтров шаблонов urlize и urlizetrnc, которые, таким образом, были уязвимы.

Проблемные регулярные выражения заменяются логикой синтаксического анализа, которая ведет себя аналогичным образом.

CVE-2018-7537: возможность отказа в обслуживании в фильтрах шаблонов truncatechars_html и truncatewords_html.

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

Исправлена ​​проблема с возвратом в регулярном выражении.

Исправления

  • Исправлена ​​регрессия, приводившая к сбою фрагмента QuerySet.distinct().order_by(), за которым следовал count() (#29108).

  • Установлен приоритет форматов ввода даты и времени без %f для тайской локали, чтобы исправить виджет выбора времени администратора, отображающий «неопределенное» (#29109).

  • Исправлен сбой с QuerySet.order_by(Exists(...)) (#29118).

  • Сделан Q.deconstruct() детерминированным с несколькими ключевыми аргументами (#29125). Возможно, вам придется изменить Q в существующих миграциях или принять автоматически созданную миграцию.

  • Исправлена ​​регрессия, при которой происходит сбой выражения When() с аргументом списка (#29166).

  • Исправлен сбой при использовании выражения Window() в подзапросе (#29172).

  • Исправлен сбой AbstractBaseUser.normalize_username(), если аргумент username не является строкой (#29176).

Back to Top