1. ==========================
    
  2. Django 2.2.3 release notes
    
  3. ==========================
    
  4. 
    
  5. *July 1, 2019*
    
  6. 
    
  7. Django 2.2.3 fixes a security issue and several bugs in 2.2.2. Also, the latest
    
  8. string translations from Transifex are incorporated.
    
  9. 
    
  10. CVE-2019-12781: Incorrect HTTP detection with reverse-proxy connecting via HTTPS
    
  11. --------------------------------------------------------------------------------
    
  12. 
    
  13. When deployed behind a reverse-proxy connecting to Django via HTTPS,
    
  14. :attr:`django.http.HttpRequest.scheme` would incorrectly detect client
    
  15. requests made via HTTP as using HTTPS. This entails incorrect results for
    
  16. :meth:`~django.http.HttpRequest.is_secure`, and
    
  17. :meth:`~django.http.HttpRequest.build_absolute_uri`, and that HTTP
    
  18. requests would not be redirected to HTTPS in accordance with
    
  19. :setting:`SECURE_SSL_REDIRECT`.
    
  20. 
    
  21. ``HttpRequest.scheme`` now respects :setting:`SECURE_PROXY_SSL_HEADER`, if it is
    
  22. configured, and the appropriate header is set on the request, for both HTTP and
    
  23. HTTPS requests.
    
  24. 
    
  25. If you deploy Django behind a reverse-proxy that forwards HTTP requests, and
    
  26. that connects to Django via HTTPS, be sure to verify that your application
    
  27. correctly handles code paths relying on ``scheme``, ``is_secure()``,
    
  28. ``build_absolute_uri()``, and ``SECURE_SSL_REDIRECT``.
    
  29. 
    
  30. Bugfixes
    
  31. ========
    
  32. 
    
  33. * Fixed a regression in Django 2.2 where :class:`~django.db.models.Avg`,
    
  34.   :class:`~django.db.models.StdDev`, and :class:`~django.db.models.Variance`
    
  35.   crash with ``filter`` argument (:ticket:`30542`).
    
  36. 
    
  37. * Fixed a regression in Django 2.2.2 where auto-reloader crashes with
    
  38.   ``AttributeError``, e.g. when using ``ipdb`` (:ticket:`30588`).