1. ==========================
    
  2. Django 1.7.6 release notes
    
  3. ==========================
    
  4. 
    
  5. *March 9, 2015*
    
  6. 
    
  7. Django 1.7.6 fixes a security issue and several bugs in 1.7.5.
    
  8. 
    
  9. Mitigated an XSS attack via properties in ``ModelAdmin.readonly_fields``
    
  10. ========================================================================
    
  11. 
    
  12. The :attr:`ModelAdmin.readonly_fields
    
  13. <django.contrib.admin.ModelAdmin.readonly_fields>` attribute in the Django
    
  14. admin allows displaying model fields and model attributes. While the former
    
  15. were correctly escaped, the latter were not. Thus untrusted content could be
    
  16. injected into the admin, presenting an exploitation vector for XSS attacks.
    
  17. 
    
  18. In this vulnerability, every model attribute used in ``readonly_fields`` that
    
  19. is not an actual model field (e.g. a :class:`property`) will **fail to be
    
  20. escaped** even if that attribute is not marked as safe. In this release,
    
  21. autoescaping is now correctly applied.
    
  22. 
    
  23. Bugfixes
    
  24. ========
    
  25. 
    
  26. * Fixed crash when coercing ``ManyRelatedManager`` to a string
    
  27.   (:ticket:`24352`).
    
  28. 
    
  29. * Fixed a bug that prevented migrations from adding a foreign key constraint
    
  30.   when converting an existing field to a foreign key (:ticket:`24447`).