Django 2.0.3 versionsinformation¶
6 mars 2018
Django 2.0.3 åtgärdar två säkerhetsproblem och flera buggar i 2.0.2. Dessutom har de senaste strängöversättningarna från Transifex införlivats.
CVE-2018-7536: Denial-of-service-möjlighet i mallfiltren urlize och urlizetrunc¶
Funktionen django.utils.html.urlize() var extremt långsam när den utvärderade vissa inmatningar på grund av katastrofala sårbarheter för backtracking i två reguljära uttryck. Funktionen urlize() används för att implementera mallfiltren urlize och urlizetrunc, som därmed var sårbara.
De problematiska reguljära uttrycken ersätts med parsinglogik som beter sig på liknande sätt.
CVE-2018-7537: Denial-of-service-möjlighet i mallfiltren truncatechars_html och truncatewords_html¶
Om django.utils.text.Truncator’s chars() och words() metoder fick argumentet html=True, var de extremt långsamma att utvärdera vissa indata på grund av en katastrofal backtracking-sårbarhet i ett reguljärt uttryck. Metoderna chars() och words() används för att implementera mallfiltren truncatechars_html och truncatewords_html, som därmed var sårbara.
Backtracking-problemet i det reguljära uttrycket är åtgärdat.
Buggrättningar¶
Åtgärdat en regression som orsakade att skivad
QuerySet.distinct().order_by()följt avcount()kraschade (#29108).Prioriterade inmatningsformaten för datetime och tid utan
%fför den thailändska språkdräkten för att åtgärda widgeten för tidsväljare i admin som visade ”undefined” (#29109).Fixad krasch med
QuerySet.order_by(Exists(...))(#29118).Gjorde
Q.deconstruct()deterministisk med flera nyckelordsargument (#29125). Du kan behöva ändraQi befintliga migreringar, eller acceptera en autogenererad migrering.Åtgärdade en regression där ett
When()-uttryck med ett listargument kraschade (#29166).Korrigerad krasch vid användning av ett
Window()-uttryck i en underfråga (#29172).Fixade kraschen i
AbstractBaseUser.normalize_username()om argumentetusernameinte är en sträng (#29176).