[1.3.x] Added missing release notes for older versions of Django
Backport of 3f6cc33cff
from master
This commit is contained in:
parent
956b755d7e
commit
7dd37edf62
|
@ -0,0 +1,14 @@
|
|||
==========================
|
||||
Django 1.3.2 release notes
|
||||
==========================
|
||||
|
||||
*July 30, 2012*
|
||||
|
||||
This is the second security release in the Django 1.3 series, fixing several
|
||||
security issues in Django 1.3. Django 1.3.2 is a recommended upgrade for
|
||||
all users of Django 1.3.
|
||||
|
||||
For a full list of issues addressed in this release, see the `security
|
||||
advisory`_.
|
||||
|
||||
.. _security advisory: https://www.djangoproject.com/weblog/2012/jul/30/security-releases-issued/
|
|
@ -0,0 +1,11 @@
|
|||
==========================
|
||||
Django 1.3.3 release notes
|
||||
==========================
|
||||
|
||||
*August 1, 2012*
|
||||
|
||||
Following Monday's security release of :doc:`Django 1.3.2 </releases/1.3.2>`,
|
||||
we began receiving reports that one of the fixes applied was breaking Python
|
||||
2.4 compatibility for Django 1.3. Since Python 2.4 is a supported Python
|
||||
version for that release series, this release fixes compatibility with
|
||||
Python 2.4.
|
|
@ -0,0 +1,37 @@
|
|||
==========================
|
||||
Django 1.3.4 release notes
|
||||
==========================
|
||||
|
||||
*October 17, 2012*
|
||||
|
||||
This is the fourth release in the Django 1.3 series.
|
||||
|
||||
Host header poisoning
|
||||
---------------------
|
||||
|
||||
Some parts of Django -- independent of end-user-written applications -- make
|
||||
use of full URLs, including domain name, which are generated from the HTTP Host
|
||||
header. Some attacks against this are beyond Django's ability to control, and
|
||||
require the web server to be properly configured; Django's documentation has
|
||||
for some time contained notes advising users on such configuration.
|
||||
|
||||
Django's own built-in parsing of the Host header is, however, still vulnerable,
|
||||
as was reported to us recently. The Host header parsing in Django 1.3.3 and
|
||||
Django 1.4.1 -- specifically, ``django.http.HttpRequest.get_host()`` -- was
|
||||
incorrectly handling username/password information in the header. Thus, for
|
||||
example, the following Host header would be accepted by Django when running on
|
||||
"validsite.com"::
|
||||
|
||||
Host: validsite.com:random@evilsite.com
|
||||
|
||||
Using this, an attacker can cause parts of Django -- particularly the
|
||||
password-reset mechanism -- to generate and display arbitrary URLs to users.
|
||||
|
||||
To remedy this, the parsing in ``HttpRequest.get_host()`` is being modified;
|
||||
Host headers which contain potentially dangerous content (such as
|
||||
username/password pairs) now raise the exception
|
||||
:exc:`django.core.exceptions.SuspiciousOperation`.
|
||||
|
||||
Details of this issue were initially posted online as a `security advisory`_.
|
||||
|
||||
.. _security advisory: https://www.djangoproject.com/weblog/2012/oct/17/security/
|
|
@ -0,0 +1,60 @@
|
|||
==========================
|
||||
Django 1.3.5 release notes
|
||||
==========================
|
||||
|
||||
*December 10, 2012*
|
||||
|
||||
Django 1.3.5 addresses two security issues present in previous Django releases
|
||||
in the 1.3 series.
|
||||
|
||||
Please be aware that this security release is slightly different from previous
|
||||
ones. Both issues addressed here have been dealt with in prior security updates
|
||||
to Django. In one case, we have received ongoing reports of problems, and in
|
||||
the other we've chosen to take further steps to tighten up Django's code in
|
||||
response to independent discovery of potential problems from multiple sources.
|
||||
|
||||
Host header poisoning
|
||||
---------------------
|
||||
|
||||
Several earlier Django security releases focused on the issue of poisoning the
|
||||
HTTP Host header, causing Django to generate URLs pointing to arbitrary,
|
||||
potentially-malicious domains.
|
||||
|
||||
In response to further input received and reports of continuing issues
|
||||
following the previous release, we're taking additional steps to tighten Host
|
||||
header validation. Rather than attempt to accommodate all features HTTP
|
||||
supports here, Django's Host header validation attempts to support a smaller,
|
||||
but far more common, subset:
|
||||
|
||||
* Hostnames must consist of characters [A-Za-z0-9] plus hyphen ('-') or dot
|
||||
('.').
|
||||
* IP addresses -- both IPv4 and IPv6 -- are permitted.
|
||||
* Port, if specified, is numeric.
|
||||
|
||||
Any deviation from this will now be rejected, raising the exception
|
||||
:exc:`django.core.exceptions.SuspiciousOperation`.
|
||||
|
||||
Redirect poisoning
|
||||
------------------
|
||||
|
||||
Also following up on a previous issue: in July of this year, we made changes to
|
||||
Django's HTTP redirect classes, performing additional validation of the scheme
|
||||
of the URL to redirect to (since, both within Django's own supplied
|
||||
applications and many third-party applications, accepting a user-supplied
|
||||
redirect target is a common pattern).
|
||||
|
||||
Since then, two independent audits of the code turned up further potential
|
||||
problems. So, similar to the Host-header issue, we are taking steps to provide
|
||||
tighter validation in response to reported problems (primarily with third-party
|
||||
applications, but to a certain extent also within Django itself). This comes in
|
||||
two parts:
|
||||
|
||||
1. A new utility function, ``django.utils.http.is_safe_url``, is added; this
|
||||
function takes a URL and a hostname, and checks that the URL is either
|
||||
relative, or if absolute matches the supplied hostname. This function is
|
||||
intended for use whenever user-supplied redirect targets are accepted, to
|
||||
ensure that such redirects cannot lead to arbitrary third-party sites.
|
||||
|
||||
2. All of Django's own built-in views -- primarily in the authentication system
|
||||
-- which allow user-supplied redirect targets now use ``is_safe_url`` to
|
||||
validate the supplied URL.
|
|
@ -0,0 +1,13 @@
|
|||
==========================
|
||||
Django 1.3.7 release notes
|
||||
==========================
|
||||
|
||||
*February 20, 2013*
|
||||
|
||||
Django 1.3.7 corrects a packaging problem with yesterday's :doc:`1.3.6 release
|
||||
</releases/1.3.6>`.
|
||||
|
||||
The release contained stray ``.pyc`` files that caused "bad magic number"
|
||||
errors when running with some versions of Python. This releases corrects this,
|
||||
and also fixes a bad documentation link in the project template ``settings.py``
|
||||
file generated by ``manage.py startproject``.
|
|
@ -19,7 +19,12 @@ Final releases
|
|||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
1.3.7
|
||||
1.3.6
|
||||
1.3.5
|
||||
1.3.4
|
||||
1.3.3
|
||||
1.3.2
|
||||
1.3.1
|
||||
1.3
|
||||
|
||||
|
|
Loading…
Reference in New Issue