Weblog

May archive

Security fix released

May 14, 2008

In accordance with our security policy, a set of releases is being issued tonight to fix a security vulnerability reported to the Django project. This entry contains a description of the vulnerability, a description of the changes made to fix it, pointers to the the relevant patches for each supported version of Django and pointers to the resulting releases. A copy of this information will also be posted to the django-users and django-developers mailing lists. The Django website is being updated to reflect the new releases.

Description of vulnerability

The Django administration application will, when accessed by a user who is not sufficiently authenticated, display a login form and ask the user to provide the necessary credentials before displaying the requested page. This form will be submitted to the URL the user attempted to access, by supplying the current request path as the value of the form's "action" attribute.

The value of the request path was not being escaped, creating an opportunity for a cross-site scripting (XSS) attack by leading a user to a URL which contained URL-encoded HTML and/or JavaScript in the request path.

Affected versions

  • Django development trunk
  • Django 0.96
  • Django 0.95
  • Django 0.91

Resolution

The login form has been changed to escape the request path before use as the form's submission action.

The relevant changesets for affected versions of Django are:

The following releases have been issued based on the above changesets:

All users of affected versions of Django are strongly encouraged to apply the relevant patch or upgrade to the relevant patched release as soon as possible.

Release manager's note

If you maintain a third-party Django package and you did not receive the announcement of these releases earlier tonight, please email James Bennett (ubernostrum@gmail.com) as soon as possible.

Also, please note that potential security vulnerabilities should be reported directly to the Django project, at security@djangoproject.com, as outlined in our security policy. Following this procedure helps us to maintain high standards of response and disclosure, and makes the process of investigating and resolving security issues much easier for everyone involved.