Django 4.1.12 release notes¶
4 oktober 2023
Django 4.1.12 åtgärdar ett säkerhetsproblem med allvarlighetsgrad ”måttlig” i 4.1.11.
CVE-2023-43665: Denial-of-service-möjlighet i django.utils.text.Truncator
¶
Efter korrigeringen för CVE 2019-14232 reviderades och förbättrades de reguljära uttryck som används i implementeringen av django.utils.text.Truncator
’s chars()
och words()
metoder (med html=True
). Dessa reguljära uttryck uppvisade dock fortfarande linjär backtracking-komplexitet, så när de fick en mycket lång, potentiellt missbildad HTML-ingång, skulle utvärderingen fortfarande vara långsam, vilket ledde till en potentiell sårbarhet för övergrepp i tjänsten.
Metoderna chars()
och words()
används för att implementera mallfiltren truncatechars_html
och truncatewords_html
, som därmed också var sårbara.
Den indata som behandlas av Truncator
, när den arbetar i HTML-läge, har begränsats till de första fem miljoner tecknen för att undvika potentiella prestanda- och minnesproblem.