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.
Published: 2026-06-03
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

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.

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

Remediation

No vendor fix or workaround currently provided.

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

No advisories yet.

History

Tue, 16 Jun 2026 15:00:00 +0000


Fri, 05 Jun 2026 10:45:00 +0000

Type Values Removed Values Added
First Time appeared Python
Python cpython
Vendors & Products Python
Python cpython

Thu, 04 Jun 2026 17:45:00 +0000


Thu, 04 Jun 2026 00:15:00 +0000

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


Wed, 03 Jun 2026 20:30:00 +0000

Type Values Removed Values Added
References

Wed, 03 Jun 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 03 Jun 2026 16:00:00 +0000

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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: PSF

Published:

Updated: 2026-06-16T14:54:50.442Z

Reserved: 2026-02-26T15:19:46.862Z

Link: CVE-2026-3276

cve-icon Vulnrichment

Updated: 2026-06-03T19:18:17.828Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-06-03T16:16:29.253

Modified: 2026-06-16T15:16:39.610

Link: CVE-2026-3276

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-06-03T14:29:39Z

Links: CVE-2026-3276 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-06-05T10:11:33Z

Weaknesses
  • CWE-407

    Inefficient Algorithmic Complexity

  • CWE-606

    Unchecked Input for Loop Condition