Notas de lanzamiento de Django 2.0.3

Marzo 6, 2018

Django 2.0.3 soluciona dos problemas de seguridad y varios errores en la versión 2.0.2. Además, se incorporan las últimas traducciones de cadenas de texto desde Transifex.

CVE-2018-7536: Posibilidad de denegación de servicio en los filtros de plantilla urlize y urlizetrunc

La función django.utils.html.urlize() era extremadamente lenta al evaluar ciertos inputs debido a vulnerabilidades de backtracking catastrófico en dos expresiones regulares. La función urlize() se utiliza para implementar los filtros de plantilla urlize y urlizetrunc, que fueron así vulnerables.

Las expresiones regulares problemáticas se reemplazan con lógica de análisis que comporta de manera similar.

CVE-2018-7537: Posibilidad de denegación de servicio en los filtros de plantilla truncatechars_html y truncatewords_html.

Si los métodos chars() y words() de django.utils.text.Truncator se pasaban el argumento html=True, eran extremadamente lentos para evaluar ciertos inputs debido a una vulnerabilidad de backtracking catastrófico en una expresión regular. Los métodos chars() y words() se utilizan para implementar los filtros de plantilla truncatechars_html y truncatewords_html, que estaban así vulnerables.

El problema de backtracking en la expresión regular se ha resuelto.

Bugfixes

  • Corregido un retroceso que causaba que la secuencia de comandos QuerySet.distinct().order_by() seguida de count() se colapsara (#29108).

  • Priorizó los formatos de entrada de fecha y hora sin `` %f `` para la localización tailandesa para solucionar el widget del selector de hora administrativo que mostraba «sin definir» (#29109).

  • Fixed crash con QuerySet.order_by(Exists(...)) (#29118).

  • He aquí la traducción del texto original manteniendo todas las etiquetas intactas:

  • Corregida una regresión donde una expresión When() con un argumento de lista provoca un error (#29166).

  • Se ha corregido la caída de la aplicación cuando se utiliza una expresión Window() en una subconsulta (#29172).

  • Fixed AbstractBaseUser.normalize_username() crash si el argumento username no es una cadena de texto (#29176).