Refs CVE-2021-23336 -- Updated tests and release notes for affected versions.
This commit is contained in:
parent
96a5093400
commit
0ad9fa02e0
|
@ -0,0 +1,16 @@
|
||||||
|
===========================
|
||||||
|
Django 2.2.19 release notes
|
||||||
|
===========================
|
||||||
|
|
||||||
|
*February 19, 2021*
|
||||||
|
|
||||||
|
Django 2.2.19 fixes a security issue in 2.2.18.
|
||||||
|
|
||||||
|
CVE-2021-23336: Web cache poisoning via ``django.utils.http.limited_parse_qsl()``
|
||||||
|
=================================================================================
|
||||||
|
|
||||||
|
Django contains a copy of :func:`urllib.parse.parse_qsl` which was added to
|
||||||
|
backport some security fixes. A further security fix has been issued recently
|
||||||
|
such that ``parse_qsl()`` no longer allows using ``;`` as a query parameter
|
||||||
|
separator by default. Django now includes this fix. See :bpo:`42967` for
|
||||||
|
further details.
|
|
@ -0,0 +1,16 @@
|
||||||
|
===========================
|
||||||
|
Django 3.0.13 release notes
|
||||||
|
===========================
|
||||||
|
|
||||||
|
*February 19, 2021*
|
||||||
|
|
||||||
|
Django 3.0.13 fixes a security issue in 3.0.12.
|
||||||
|
|
||||||
|
CVE-2021-23336: Web cache poisoning via ``django.utils.http.limited_parse_qsl()``
|
||||||
|
=================================================================================
|
||||||
|
|
||||||
|
Django contains a copy of :func:`urllib.parse.parse_qsl` which was added to
|
||||||
|
backport some security fixes. A further security fix has been issued recently
|
||||||
|
such that ``parse_qsl()`` no longer allows using ``;`` as a query parameter
|
||||||
|
separator by default. Django now includes this fix. See :bpo:`42967` for
|
||||||
|
further details.
|
|
@ -2,9 +2,18 @@
|
||||||
Django 3.1.7 release notes
|
Django 3.1.7 release notes
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
*Expected March 1, 2021*
|
*February 19, 2021*
|
||||||
|
|
||||||
Django 3.1.7 fixes several bugs in 3.1.6.
|
Django 3.1.7 fixes a security issue and a bug in 3.1.6.
|
||||||
|
|
||||||
|
CVE-2021-23336: Web cache poisoning via ``django.utils.http.limited_parse_qsl()``
|
||||||
|
=================================================================================
|
||||||
|
|
||||||
|
Django contains a copy of :func:`urllib.parse.parse_qsl` which was added to
|
||||||
|
backport some security fixes. A further security fix has been issued recently
|
||||||
|
such that ``parse_qsl()`` no longer allows using ``;`` as a query parameter
|
||||||
|
separator by default. Django now includes this fix. See :bpo:`42967` for
|
||||||
|
further details.
|
||||||
|
|
||||||
Bugfixes
|
Bugfixes
|
||||||
========
|
========
|
||||||
|
|
|
@ -53,6 +53,7 @@ versions of the documentation contain the release notes for any later releases.
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
|
3.0.13
|
||||||
3.0.12
|
3.0.12
|
||||||
3.0.11
|
3.0.11
|
||||||
3.0.10
|
3.0.10
|
||||||
|
@ -72,6 +73,7 @@ versions of the documentation contain the release notes for any later releases.
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
|
2.2.19
|
||||||
2.2.18
|
2.2.18
|
||||||
2.2.17
|
2.2.17
|
||||||
2.2.16
|
2.2.16
|
||||||
|
|
|
@ -6,7 +6,7 @@ from django.test.client import FakePayload
|
||||||
class ExceptionHandlerTests(SimpleTestCase):
|
class ExceptionHandlerTests(SimpleTestCase):
|
||||||
|
|
||||||
def get_suspicious_environ(self):
|
def get_suspicious_environ(self):
|
||||||
payload = FakePayload('a=1&a=2;a=3\r\n')
|
payload = FakePayload('a=1&a=2&a=3\r\n')
|
||||||
return {
|
return {
|
||||||
'REQUEST_METHOD': 'POST',
|
'REQUEST_METHOD': 'POST',
|
||||||
'CONTENT_TYPE': 'application/x-www-form-urlencoded',
|
'CONTENT_TYPE': 'application/x-www-form-urlencoded',
|
||||||
|
|
|
@ -11,7 +11,7 @@ TOO_MUCH_DATA_MSG = 'Request body exceeded settings.DATA_UPLOAD_MAX_MEMORY_SIZE.
|
||||||
|
|
||||||
class DataUploadMaxMemorySizeFormPostTests(SimpleTestCase):
|
class DataUploadMaxMemorySizeFormPostTests(SimpleTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
payload = FakePayload('a=1&a=2;a=3\r\n')
|
payload = FakePayload('a=1&a=2&a=3\r\n')
|
||||||
self.request = WSGIRequest({
|
self.request = WSGIRequest({
|
||||||
'REQUEST_METHOD': 'POST',
|
'REQUEST_METHOD': 'POST',
|
||||||
'CONTENT_TYPE': 'application/x-www-form-urlencoded',
|
'CONTENT_TYPE': 'application/x-www-form-urlencoded',
|
||||||
|
@ -117,7 +117,7 @@ class DataUploadMaxNumberOfFieldsGet(SimpleTestCase):
|
||||||
request = WSGIRequest({
|
request = WSGIRequest({
|
||||||
'REQUEST_METHOD': 'GET',
|
'REQUEST_METHOD': 'GET',
|
||||||
'wsgi.input': BytesIO(b''),
|
'wsgi.input': BytesIO(b''),
|
||||||
'QUERY_STRING': 'a=1&a=2;a=3',
|
'QUERY_STRING': 'a=1&a=2&a=3',
|
||||||
})
|
})
|
||||||
request.GET['a']
|
request.GET['a']
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ class DataUploadMaxNumberOfFieldsGet(SimpleTestCase):
|
||||||
request = WSGIRequest({
|
request = WSGIRequest({
|
||||||
'REQUEST_METHOD': 'GET',
|
'REQUEST_METHOD': 'GET',
|
||||||
'wsgi.input': BytesIO(b''),
|
'wsgi.input': BytesIO(b''),
|
||||||
'QUERY_STRING': 'a=1&a=2;a=3',
|
'QUERY_STRING': 'a=1&a=2&a=3',
|
||||||
})
|
})
|
||||||
request.GET['a']
|
request.GET['a']
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue