← Vulnerability feed

Vulnerability record · CVE-2023-46695 · published 2 November 2023

CVE-2023-46695: Django UsernameField DoS via slow NFKC normalization on Windows

Djangoproject · Django

Django's NFKC normalization is slow on Windows, and django.contrib.auth.forms.UsernameField processes user-supplied Unicode input without limiting its size. An attacker can submit a username containing a very large number of Unicode characters to trigger excessive CPU consumption and deny service.

7.5 CVSS 3.1 High EPSS 50% · top 1.1% CWE-770 · Allocation without limits
7.5CVSS 3.1 base score
50%EPSS exploitation probability, 30 days
NoNot in CISA KEV
1Affected product versions listed by NVD
8References
17 Jun 2026Last modified by NVD

Description

An issue was discovered in Django 3.2 before 3.2.23, 4.1 before 4.1.13, and 4.2 before 4.2.7. The NFKC normalization is slow on Windows. As a consequence, django.contrib.auth.forms.UsernameField is subject to a potential DoS (denial of service) attack via certain inputs with a very large number of Unicode characters.

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Automated analysis

Generated by VULONE's analysis model from the NVD record, CISA KEV and EPSS data on 20 September 2026. Confidence: high.

high priorityCVSS 7.5 with network-reachable, unauthenticated availability impact and a high EPSS score, though exploitation is limited to denial of service and no KEV listing exists.

What it is

Django's NFKC normalization is slow on Windows, and django.contrib.auth.forms.UsernameField processes user-supplied Unicode input without limiting its size. An attacker can submit a username containing a very large number of Unicode characters to trigger excessive CPU consumption and deny service.

Impact

An unauthenticated attacker can tie up server resources and degrade or block availability of the Django application for legitimate users. There is no confidentiality or integrity impact; the effect is denial of service.

Attack surface

Reachable over the network through the authentication form's username field, which is typically exposed on login and registration endpoints. No authentication is required and no user interaction beyond submitting the crafted input is needed, per the CVSS vector AV:N/AC:L/PR:N/UI:N.

Exploitation

Not listed in CISA KEV and no public exploit references are tagged in the record, but EPSS is high at roughly 0.498 (98.8th percentile), indicating elevated likelihood of attempted exploitation.

What to do

  • Upgrade to Django 3.2.23, 4.1.13, or 4.2.7 or later, which contain the fix.
  • If immediate patching is not possible, apply input length limits on username and other Unicode-normalized fields at the web server or form level.
  • Rate-limit and throttle authentication and registration endpoints to reduce the impact of resource-exhaustion attempts.
  • Monitor CPU usage on Windows-hosted Django instances and alert on abnormal spikes tied to authentication traffic.

Detection

  • Alert on unusually long username values in login or registration request bodies and query strings.
  • Monitor for high CPU consumption or request latency spikes correlated with authentication endpoint traffic.
  • Review web server and application logs for repeated oversized POST requests to login or registration paths from single sources.

This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.

Affected products

1 vulnerable configurations from NVD's CPE data, grouped by vendor and product.

References

Track CVE-2023-46695 inside VULONE

Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.

Start free Open in platform

Related vulnerabilities

Same products first, then exploited flaws of the same weakness class.

10.0CVE-2014-0474Canonical ubuntu linux vulnerabilityThe (1) FilePathField, (2) GenericIPAddressField, and (3) IPAddressField model field classes in Django before 1.4.11, 1.5.x before 1.5.6, 1.6.x befor…EPSS 4.9%9.8CVE-2026-4277Djangoproject django missing authorization vulnerabilityAn issue was discovered in 6.0 before 6.0.4, 5.2 before 5.2.13, and 4.2 before 4.2.30. Add permissions on inline model instances were not validated o…EPSS 0.60%9.8CVE-2025-59681Djangoproject django sql injection vulnerabilityAn issue was discovered in Django 4.2 before 4.2.25, 5.1 before 5.1.13, and 5.2 before 5.2.7. QuerySet.annotate(), QuerySet.alias(), QuerySet.aggrega…EPSS 0.63%9.8CVE-2024-53908Djangoproject django sql injection vulnerabilityAn issue was discovered in Django 5.1 before 5.1.4, 5.0 before 5.0.10, and 4.2 before 4.2.17. Direct usage of the django.db.models.fields.json.HasKey…EPSS 1.4%9.8CVE-2023-31047Djangoproject django improper input validation vulnerabilityIn Django 3.2 before 3.2.19, 4.x before 4.1.9, and 4.2 before 4.2.1, it was possible to bypass validation when using one form field to upload multipl…EPSS 1.4%9.8CVE-2022-34265Django Trunc() and Extract() database functions SQL injectionDjango 3.2 before 3.2.14 and 4.0 before 4.0.6 allow SQL injection when untrusted data is passed as the kind or lookup_name argument to the Trunc() an…EPSS 74%analysed9.8CVE-2022-28347Djangoproject django sql injection vulnerabilityA SQL injection issue was discovered in QuerySet.explain() in Django 2.2 before 2.2.28, 3.2 before 3.2.13, and 4.0 before 4.0.4. This occurs by passi…EPSS 2.9%9.8CVE-2022-28346Djangoproject django sql injection vulnerabilityAn issue was discovered in Django 2.2 before 2.2.28, 3.2 before 3.2.13, and 4.0 before 4.0.4. QuerySet.annotate(), aggregate(), and extra() methods a…EPSS 19%

Source: NIST National Vulnerability Database (record CVE-2023-46695), CISA KEV, FIRST EPSS (scores of 2026-09-26). This page is refreshed as NVD updates the record.