1.3.4.txt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. ==========================
  2. Django 1.3.4 release notes
  3. ==========================
  4. *October 17, 2012*
  5. This is the fourth release in the Django 1.3 series.
  6. Host header poisoning
  7. =====================
  8. Some parts of Django -- independent of end-user-written applications -- make
  9. use of full URLs, including domain name, which are generated from the HTTP Host
  10. header. Some attacks against this are beyond Django's ability to control, and
  11. require the web server to be properly configured; Django's documentation has
  12. for some time contained notes advising users on such configuration.
  13. Django's own built-in parsing of the Host header is, however, still vulnerable,
  14. as was reported to us recently. The Host header parsing in Django 1.3.3 and
  15. Django 1.4.1 -- specifically, ``django.http.HttpRequest.get_host()`` -- was
  16. incorrectly handling username/password information in the header. Thus, for
  17. example, the following Host header would be accepted by Django when running on
  18. ``validsite.com``:
  19. .. code-block:: text
  20. Host: validsite.com:random@evilsite.com
  21. Using this, an attacker can cause parts of Django -- particularly the
  22. password-reset mechanism -- to generate and display arbitrary URLs to users.
  23. To remedy this, the parsing in ``HttpRequest.get_host()`` is being modified;
  24. Host headers which contain potentially dangerous content (such as
  25. username/password pairs) now raise the exception
  26. :exc:`django.core.exceptions.SuspiciousOperation`.
  27. Details of this issue were initially posted online as a `security advisory`_.
  28. .. _security advisory: https://www.djangoproject.com/weblog/2012/oct/17/security/