multiple, bad security issues in pinned django version

It is dangerous to hard-pin to a single version of a Python dependency. Much better is to allow minor upgrades, e.g.: 'django >= 1.11, < 1.12'

CVE-2019-14234 More information critical severity Vulnerable versions: >= 1.11.0, < 1.11.23 Patched version: 1.11.23

An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4. Due to an error in shallow key transformation, key and index lookups for django.contrib.postgres.fields.JSONField, and key lookups for django.contrib.postgres.fields.HStoreField, were subject to SQL injection. This could, for example, be exploited via crafted use of "OR 1=1" in a key or index name to return all records, using a suitably crafted dictionary, with dictionary expansion, as the **kwargs passed to the QuerySet.filter() function. CVE-2019-14233 More information high severity Vulnerable versions: >= 1.11.0, < 1.11.23 Patched version: 1.11.23

An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4. Due to the behaviour of the underlying HTMLParser, django.utils.html.strip_tags would be extremely slow to evaluate certain inputs containing large sequences of nested incomplete HTML entities. CVE-2019-14235 More information high severity Vulnerable versions: >= 1.11.0, < 1.11.23 Patched version: 1.11.23

An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4. If passed certain inputs, django.utils.encoding.uri_to_iri could lead to significant memory usage due to a recursion when repercent-encoding invalid UTF-8 octet sequences. CVE-2019-14232 More information high severity Vulnerable versions: >= 1.11.0, < 1.11.23 Patched version: 1.11.23

An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4. If django.utils.text.Truncator's chars() and words() methods were passed the html=True argument, they were extremely slow to evaluate certain inputs due to a catastrophic backtracking vulnerability in a regular expression. The chars() and words() methods are used to implement the truncatechars_html and truncatewords_html template filters, which were thus vulnerable. CVE-2019-12781 More information moderate severity Vulnerable versions: >= 1.11.0, < 1.11.22 Patched version: 1.11.22

An issue was discovered in Django 1.11 before 1.11.22, 2.1 before 2.1.10, and 2.2 before 2.2.3. An HTTP request is not redirected to HTTPS when the SECURE_PROXY_SSL_HEADER and SECURE_SSL_REDIRECT settings are used, and the proxy connects to Django via HTTPS. In other words, django.http.HttpRequest.scheme has incorrect behavior when a client uses HTTP. CVE-2019-12308 More information moderate severity Vulnerable versions: >= 1.11.0, < 1.11.21 Patched version: 1.11.21

An issue was discovered in Django 1.11 before 1.11.21, 2.1 before 2.1.9, and 2.2 before 2.2.2. The clickable Current URL value displayed by the AdminURLFieldWidget displays the provided value without validating it as a safe URL. Thus, an unvalidated value stored in the database, or a value provided as a URL query parameter payload, could result in an clickable JavaScript link.