Django 3.0.1 release notes¶
18 december 2019
Django 3.0.1 åtgärdar ett säkerhetsproblem och flera buggar i 3.0.
CVE-2019-19844: Potentiell kontokapning via formulär för återställning av lösenord¶
Genom att skicka in en lämpligt utformad e-postadress som använder Unicode-tecken och som är lika med en befintlig användares e-postadress när den är gemenerad för jämförelse, kan en angripare få en token för återställning av lösenord för det matchade kontot.
För att undvika denna sårbarhet jämför nu begäran om återställning av lösenord det skickade e-postmeddelandet med hjälp av den strängare, rekommenderade algoritmen för jämförelse av två identifierare utan skiftlägeskänslighet från Unicode Technical Report 36, avsnitt 2.11.2(B)(2)`__. Vid en matchning skickas e-postmeddelandet som innehåller återställningstoken till den registrerade e-postadressen i stället för till den inskickade adressen.
Buggrättningar¶
Fixade en regression i Django 3.0 genom att återställa möjligheten att använda Django i Jupyter och andra miljöer som tvingar fram en asynkron kontext, genom att lägga till ett alternativ för att inaktivera Asynkron säkerhet-mekanismen med
DJANGO_ALLOW_ASYNC_UNSAFE
-miljövariabeln (#31056).Åtgärdade en regression i Django 3.0 där
RegexPattern
, som används avre_path()
, returnerade positionella argument som skulle skickas till vyn när alla valfria namngivna grupper saknades (#31061).Tillåter, efter en regression i Django 3.0, att
Window
-uttryck används i villkor utanför queryset-filter, t.ex. iWhen
-villkor (#31060).Åtgärdade en möjlig dataförlust i
SplitArrayField
. Vid användning medArrayField(BooleanField())
markerades alla värden efter det förstaTrue
-värdet som kontrollerade istället för att bevara godkända värden (#31073).