1. ============================
    
  2. Django 1.11.27 release notes
    
  3. ============================
    
  4. 
    
  5. *December 18, 2019*
    
  6. 
    
  7. Django 1.11.27 fixes a security issue and a data loss bug in 1.11.26.
    
  8. 
    
  9. CVE-2019-19844: Potential account hijack via password reset form
    
  10. ================================================================
    
  11. 
    
  12. By submitting a suitably crafted email address making use of Unicode
    
  13. characters, that compared equal to an existing user email when lower-cased for
    
  14. comparison, an attacker could be sent a password reset token for the matched
    
  15. account.
    
  16. 
    
  17. In order to avoid this vulnerability, password reset requests now compare the
    
  18. submitted email using the stricter, recommended algorithm for case-insensitive
    
  19. comparison of two identifiers from `Unicode Technical Report 36, section
    
  20. 2.11.2(B)(2)`__. Upon a match, the email containing the reset token will be
    
  21. sent to the email address on record rather than the submitted address.
    
  22. 
    
  23. .. __: https://www.unicode.org/reports/tr36/#Recommendations_General
    
  24. 
    
  25. Bugfixes
    
  26. ========
    
  27. 
    
  28. * Fixed a data loss possibility in
    
  29.   :class:`~django.contrib.postgres.forms.SplitArrayField`. When using with
    
  30.   ``ArrayField(BooleanField())``, all values after the first ``True`` value
    
  31.   were marked as checked instead of preserving passed values (:ticket:`31073`).