CVE-2026-3276

Potential DoS via quadratic complexity in unicodedata.normalize()

Published Jun 3, 2026 CVSS 4.0 · 6.3 Medium EPSS < 1% KEV · Not listed
Description
unicodedata.normalize() can take excessive CPU time when processing
specially crafted Unicode input containing long runs of combining characters
with alternating Canonical Combining Class values.
This affects all normalization forms.

Analysis

AI-generated

Technical impact

Unicodedata.normalize() in CPython can exhibit quadratic time complexity when normalizing specially crafted Unicode strings that contain long runs of combining characters with alternating Canonical Combining Class values. The function consumes an inordinate amount of CPU resources during these operations, which can lead to a denial‑of‑service condition for the executing process or the system as a whole, as reflected by its CVSS score of 6.3 and identified by CWE-407 and CWE-606. The vulnerability arises during normal string processing and would affect any code that invokes the normalize routine on untrusted input, whether directly or indirectly through higher‑level libraries that rely on it.

Affected Systems

The issue is present in CPython, the reference implementation of Python, and affects all normalization forms. No specific version numbers are listed, meaning all current releases of CPython that expose the function are potentially impacted until the fix is incorporated.

Risk and Exploitability

The issue is rooted in CWE-407 (Resource Exhaustion) and CWE-606 (Unchecked Input for Parameter). The CVSS score indicates moderate severity, and the EPSS score is unavailable, suggesting that exploitation data is limited. The vulnerability is not listed in the CISA KEV catalog, so there is no documented active exploitation. The likely attack vector is supplying crafted Unicode data to an application that uses CPython's normalize function, possibly passing through network input, file loading, or user interface components. The exploit does not require privileged access and can be performed remotely if the target exposes such input vectors.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to the latest CPython release that contains the commit referenced by issue #149080.
  • Audit application code to avoid passing untrusted or too‑long Unicode strings to unicodedata.normalize, replacing with safer alternatives or applying length limits.
  • Implement rate limiting or shield the normalization call behind a resource governor to mitigate potential denial‑of‑service attacks during processing of user‑supplied text.
  • Validate the length and correctness of input strings before passing them to unicodedata.normalize to mitigate CWE-606 risks.

Generated by OpenCVE AI on June 4, 2026 at 01:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4827-1 python3.11 security update
Ubuntu USN Ubuntu USN USN-8509-1 Python vulnerabilities
History
Type Values Removed Values Added
First Time appeared Python
Python cpython
Vendors & Products Python
Python cpython
Type Values Removed Values Added
Weaknesses CWE-606
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L'}

threat_severity

Moderate

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description unicodedata.normalize() can take excessive CPU time when processing specially crafted Unicode input containing long runs of combining characters with alternating Canonical Combining Class values. This affects all normalization forms.
Title Potential DoS via quadratic complexity in unicodedata.normalize()
Weaknesses CWE-407
References
Metrics cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-407

    Inefficient Algorithmic Complexity

  • CWE-606

    Unchecked Input for Loop Condition

Sources

Status
PUBLISHED
Assigner
PSF
Published
Updated
Nov 10, 2026, 12:40 PM
Reserved
Feb 26, 2026, 3:19 PM
Status
Awaiting Analysis
Published
Jun 3, 2026, 4:16 PM
Modified
Nov 10, 2026, 1:19 PM
Severity
Moderate
Public date
Jun 3, 2026, 2:29 PM