March 6, 2018
Django 2.0.3 fixes two security issues and several bugs in 2.0.2. Also, the latest string translations from Transifex are incorporated.
django.utils.html.urlize() function was extremely slow to evaluate
certain inputs due to catastrophic backtracking vulnerabilities in two regular
urlize() function is used to implement the
urlizetrunc template filters, which were thus vulnerable.
The problematic regular expressions are replaced with parsing logic that behaves similarly.
words() methods were
html=True argument, they were extremely slow to evaluate certain
inputs due to a catastrophic backtracking vulnerability in a regular
words() methods are used to implement the
truncatewords_html template filters, which were
The backtracking problem in the regular expression is fixed.
Fixed a regression that caused sliced
count() to crash (#29108).
Prioritized the datetime and time input formats without
%f for the Thai
locale to fix the admin time picker widget displaying “undefined”
Fixed crash with
Q.deconstruct() deterministic with multiple keyword arguments
(#29125). You may need to modify
Q’s in existing migrations, or
accept an autogenerated migration.
Fixed a regression where a
When() expression with a list argument crashes
Fixed crash when using a
Window() expression in a subquery
AbstractBaseUser.normalize_username() crash if the
argument isn’t a string (#29176).