Django 3.1.1 release notes¶
1 september 2020
Django 3.1.1 åtgärdar två säkerhetsproblem och flera buggar i 3.1.
CVE-2020-24583: Felaktiga behörigheter för kataloger på mellannivå i Python 3.7+¶
I Python 3.7+ tillämpades inte läget FILE_UPLOAD_DIRECTORY_PERMISSIONS
på kataloger på mellannivå som skapats under uppladdning av filer och på insamlade statiska kataloger på mellannivå när kommandot collectstatic
användes.
Du bör granska och manuellt fixa behörigheter på befintliga kataloger på mellannivå.
CVE-2020-24584: Upptrappning av behörigheter i kataloger på mellannivå i filsystemets cache på Python 3.7+¶
I Python 3.7+ hade katalogerna på mellannivå i filsystemets cache systemets standard-umask i stället för 0o077
(inga grupp- eller andra behörigheter).
Buggrättningar¶
Korrigerad ombrytning av översatta åtgärdsetiketter i admins sidofält för navigering för östasiatiska språk (#31853).
Fixat ombrytning av långa modellnamn i sidofältet i admins navigering (#31854).
Korrigerad kodning av sessionsdata vid uppgradering av flera instanser av samma projekt till Django 3.1 (#31864).
Justerad mall för sidofältet i admins navigering för att minska felsökningsloggningen vid rendering (#31865).
Åtgärdade en möjlighet till dataförlust i
select_for_update()
. När man använde relaterade fält som pekade på en proxymodell iof
-argumentet låstes inte motsvarande modell (#31866).Åtgärdat en möjlighet till dataförlust, efter en regression i Django 2.0, vid kopiering av modellinstanser med ett cachelagrat fältvärde (#31863).
Åtgärdade en regression i Django 3.1 som orsakade en krasch vid avkodning av ogiltiga sessionsdata (#31895).
Återställde en föråldring i Django 3.1 som orsakade en krasch när man skickade föråldrade nyckelordsargument till en queryset i
TemplateView.get_context_data()
(#31877).Genomförd trådkänslighet för
MiddlewareMixin.process_request()
ochprocess_response()
-krokarna när de är i ett async-sammanhang (#31905).Fixad
__in
-uppslagning på nyckelomvandlingar förJSONField
med MariaDB, MySQL, Oracle och SQLite (#31936).Åtgärdade en regression i Django 3.1 som orsakade behörighetsfel i
CommonPasswordValidator
ochsettings.py
som genererades av kommandotstartproject
, när användaren inte hade behörighet till alla mellanliggande kataloger i en Django-installationssökväg (#31912).Fixade upptäckten av en asynkron
get_response
-kallelse i olika inbyggda mellanprogram (#31928).Fixade en
QuerySet.order_by()
krasch på PostgreSQL när du beställer och grupperar efterJSONField
med en anpassaddecoder
(#31956). Som en följd av detta returnerar hämtning av enJSONField
med rå SQL nu en sträng istället för förinstallerade data. Du måste uttryckligen anropajson.loads()
i sådana fall.Fixade en
QuerySet.delete()
-krasch på MySQL, efter en prestandaregression i Django 3.1 på MariaDB 10.3.2+, vid filtrering mot en aggregerad funktion (#31965).Fixade en
django.contrib.admin.EmptyFieldListFilter
krasch vid användning på omvända relationer (#31952).Förhindrade överflödigt innehåll i vyn för adminändringslistan när sidofältet för navigering är aktiverat (#31901).