# Django 6.0.5 documentation

# Django 4.2.6 versionsinformation

4 oktober 2023

Django 4.2.6 åtgärdar ett säkerhetsproblem med allvarlighetsgrad ”måttlig” och flera buggar i 4.2.5.

## 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.

## Buggrättningar

- Fixade en regression i Django 4.2.5 där åsidosättande av de föråldrade inställningarna `DEFAULT_FILE_STORAGE` och `STATICFILES_STORAGE` i tester orsakade att huvudinställningen `STORAGES` muterades (#34821).

- Fixade en regression i Django 4.2 som orsakade onödig casting av strängbaserade fält (`CharField`, `EmailField`, `TextField`, `CICharField`, `CIEmailField` och `CITextField`) som används med `__isnull`-uppslagningen på PostgreSQL. Som en konsekvens skulle index som använder ett `__isnull` uttryck eller villkor som skapats före Django 4.2 inte användas av frågeplaneraren, vilket leder till en prestandaregression (#34840).

  Du kan behöva återskapa sådana index som skapats i din databas med Django 4.2 till 4.2.5, eftersom de innehåller onödig `::text` casting. Hitta kandidatindex med den här frågan:

      SELECT indexname, indexdef
      FROM pg_indexes
      WHERE indexdef LIKE '%::text IS %NULL';