Django 5.1.4 release notes

4 december 2024

Django 5.1.4 åtgärdar ett säkerhetsproblem med allvarlighetsgrad ”hög”, ett säkerhetsproblem med allvarlighetsgrad ”måttlig” och flera buggar i 5.1.3.

CVE-2024-53907: Denial-of-service-möjlighet i strip_tags()

strip_tags() skulle vara extremt långsam för att utvärdera vissa indata som innehåller stora sekvenser av nästlade ofullständiga HTML-enheter. Metoden strip_tags() används för att implementera motsvarande striptags mallfilter, som därmed också var sårbart.

strip_tags() har nu en övre gräns för rekursiva anrop till HTMLParser innan det uppstår ett SuspiciousOperation-undantag.

Kom ihåg att det absolut INTE ges någon garanti för att resultatet av strip_tags() är HTML-säkert. Så markera ALDRIG resultatet av ett strip_tags()-anrop som säkert utan att först escapa det, till exempel med django.utils.html.escape().

CVE-2024-53908: Potentiell SQL-injektion via HasKey(lhs, rhs) på Oracle

Direkt användning av django.db.models.fields.json.HasKey lookup på Oracle var föremål för SQL-injektion om otillförlitliga data användes som ett lhs-värde.

Program som använder has_key genom syntaxen __ påverkas inte.

Buggrättningar

  • Fixade en krasch i createsuperuser på Python 3.13+ orsakad av ett ohanterat OSError när användarnamnet inte kunde bestämmas (#35942).

  • Åtgärdade en regression i Django 5.1 där relationsfält inte uppdaterades när man anropade Model.refresh_from_db() på instanser med uppskjutna fält (#35950).