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.
Problem types
Product status
Any version before 3.13.14
3.14.0 (python) before 3.14.6
3.15.0a1 (python) before 3.15.0b2
Credits
Seokchan Yoon (https://github.com/ch4n3-yoon)
Tim Peters (https://github.com/tim-one)
Bénédikt Tran (https://github.com/picnixz)
Serhiy Storchaka (https://github.com/serhiy-storchaka)
Stan Ulbrych (https://github.com/StanFromIreland)
Seth Larson (https://github.com/sethmlarson)
Petr Viktorin (https://github.com/encukou)
References
www.openwall.com/lists/oss-security/2026/06/03/15
mail.python.org/.../thread/PP5HB4K7727OBBM76KA2ILID76K3OZGZ/
github.com/python/cpython/pull/149080
github.com/python/cpython/issues/149079
github.com/...ommit/6b505d1f41f8f3ea0fe5a4786d3a8fff1875cfc0
github.com/...ommit/991224b1e8311c85f198f6dd8208bf8cff7fc26f
github.com/...ommit/ba785b88add96acbf403d65cb157fb2743a33a32
github.com/...ommit/c5512bd7c1dc28055660565275012766941d3066