---
title: "Django 4.2.6 release notes"
version: 5.1
locale: pl
source: https://docs.djangoproject.com/pl/5.1/releases/4.2.6/
canonical: https://djangodocs.dev/pl/5.1/releases/4.2.6/
---
# Django 4.2.6 release notes

*October 4, 2023*

Django 4.2.6 fixes a security issue with severity „moderate” and several bugs
in 4.2.5.

## CVE-2023-43665: Denial-of-service possibility in `django.utils.text.Truncator`

Following the fix for [**CVE 2019-14232**](https://www.cve.org/CVERecord?id=CVE-2019-14232), the regular expressions used in the
implementation of `django.utils.text.Truncator`’s `chars()` and `words()`
methods (with `html=True`) were revised and improved. However, these regular
expressions still exhibited linear backtracking complexity, so when given a
very long, potentially malformed HTML input, the evaluation would still be
slow, leading to a potential denial of service vulnerability.

The `chars()` and `words()` methods are used to implement the
[`truncatechars_html`](/pl/5.1/ref/templates/builtins/#std-templatefilter-truncatechars_html) and [`truncatewords_html`](/pl/5.1/ref/templates/builtins/#std-templatefilter-truncatewords_html) template
filters, which were thus also vulnerable.

The input processed by `Truncator`, when operating in HTML mode, has been
limited to the first five million characters in order to avoid potential
performance and memory issues.

## Poprawki błędów

- Fixed a regression in Django 4.2.5 where overriding the deprecated
  `DEFAULT_FILE_STORAGE` and `STATICFILES_STORAGE` settings in tests caused
  the main `STORAGES` to mutate ([#34821](https://code.djangoproject.com/ticket/34821)).
- Fixed a regression in Django 4.2 that caused unnecessary casting of string
  based fields (`CharField`, `EmailField`, `TextField`, `CICharField`,
  `CIEmailField`, and `CITextField`) used with the `__isnull` lookup on
  PostgreSQL. As a consequence, indexes using an `__isnull` expression or
  condition created before Django 4.2 wouldn’t be used by the query planner,
  leading to a performance regression ([#34840](https://code.djangoproject.com/ticket/34840)).

  You may need to recreate such indexes created in your database with Django
  4.2 to 4.2.5, as they contain unnecessary `::text` casting. Find candidate
  indexes with this query:

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