{"id":"PSF-2026-25","details":"unicodedata.normalize() can take excessive CPU time when processing\nspecially crafted Unicode input containing long runs of combining characters\nwith alternating Canonical Combining Class values.\nThis affects all normalization forms.","aliases":["BIT-libpython-2026-3276","BIT-python-2026-3276","BIT-python-min-2026-3276","CVE-2026-3276"],"modified":"2026-06-05T13:41:09.838079708Z","published":"2026-06-03T14:29:39.727Z","database_specific":{"cwe_ids":[]},"references":[{"type":"ADVISORY","url":"https://mail.python.org/archives/list/security-announce@python.org/thread/PP5HB4K7727OBBM76KA2ILID76K3OZGZ/"},{"type":"WEB","url":"https://github.com/python/cpython/pull/149080"},{"type":"REPORT","url":"https://github.com/python/cpython/issues/149079"},{"type":"FIX","url":"https://github.com/python/cpython/commit/6b505d1f41f8f3ea0fe5a4786d3a8fff1875cfc0"},{"type":"FIX","url":"https://github.com/python/cpython/commit/991224b1e8311c85f198f6dd8208bf8cff7fc26f"},{"type":"FIX","url":"https://github.com/python/cpython/commit/ba785b88add96acbf403d65cb157fb2743a33a32"},{"type":"FIX","url":"https://github.com/python/cpython/commit/c5512bd7c1dc28055660565275012766941d3066"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/python/cpython","events":[{"introduced":"0"},{"fixed":"6b505d1f41f8f3ea0fe5a4786d3a8fff1875cfc0"},{"fixed":"991224b1e8311c85f198f6dd8208bf8cff7fc26f"},{"fixed":"ba785b88add96acbf403d65cb157fb2743a33a32"},{"fixed":"c5512bd7c1dc28055660565275012766941d3066"}]}],"versions":["v3.14.5","v3.15.0b1","v3.14.5rc1","v3.13.13","v3.14.4","v3.15.0a8","v3.15.0a7","v3.15.0a6","v3.13.12","v3.14.3","v3.15.0a5","v3.15.0a4","v3.15.0a3","v3.14.2","v3.13.11","v3.13.10","v3.14.1","v3.15.0a2","v3.15.0a1","v3.13.8","v3.14.0","v3.14.0rc3","v3.13.7","v3.14.0rc2","v3.13.6","v3.14.0rc1","v3.14.0b4","v3.14.0b3","v3.13.5","v3.13.4","v3.14.0b2","v3.14.0b1","v3.13.3","v3.14.0a7","v3.14.0a6","v3.14.0a5","v3.13.2","v3.14.0a4","v3.14.0a3","v3.13.1","v3.14.0a2","v3.14.0a1","v3.13.0","v3.13.0rc3","v3.13.0rc2","v3.13.0rc1","v3.13.0b4","v3.13.0b3","v3.13.0b2","v3.13.0b1","v3.13.0a6","v3.13.0a5","v3.13.0a4","v3.13.0a3","v3.13.0a2","v3.13.0a1","v3.12.0b1","v3.12.0a7","v3.12.0a6","v3.12.0a5","v3.12.0a4","v3.12.0a3","v3.12.0a2","v3.12.0a1","v3.11.0b1","v3.11.0a7","v3.11.0a6","v3.11.0a5","v3.11.0a4","v3.11.0a3","v3.10.0a7","v3.10.0a1","v3.9.0a2","v3.7.0a2","v3.6.0b1","v3.6.0a3","v3.5.0b1","v3.5.0a4","v3.5.0a3","v3.5.0a2","v3.5.0a1","v3.4.0b3","v3.4.0b2","v3.4.0b1","v3.4.0a4","v3.4.0a3","v3.4.0a2","v3.4.0a1","v3.3.0rc3","v3.3.0rc2","v3.3.0rc1","v3.3.0b2","v3.3.0b1","v3.3.0a4","v3.3.0a3","v3.3.0a2","v3.2rc3","v3.2rc2","v3.2rc1","v3.2b2","v3.2b1","v3.2a4","v3.2a3","v3.2a2","v3.2a1","v3.1","v3.1rc2","v3.1rc1","v3.1b1","v3.1a2","v3.1a1","v3.0rc3","v3.0rc2","v3.0rc1","v3.0b3","v3.0b2","v3.0b1","v3.0a5","v3.0a4","v3.0a3","v3.0a2","v3.0a1","v2.4","v2.4c1","v2.4b2","v2.4b1","v2.4a3","v2.4a2","v2.4a1","v2.3c2","v2.3c1","v2.2a3","v2.1","v2.1c2","v2.1c1","v2.1b2","v2.1b1","v2.1a2","v2.1a1","v2.0","v2.0c1","v2.0b2","v2.0b1","v1.6a2","v1.6a1","v1.5.2","v1.5.2c1","v1.5.2b2","v1.5.2b1","v1.5.2a2","v1.5.2a1","v1.5.1","v1.5","v1.5b2","v1.5b1","v1.5a4","v1.5a3","v1.5a2","v1.5a1","v1.4","v1.4b3","v1.4b2","v1.4b1","v1.3","v1.3b1","v1.2","v1.2b4","v1.2b3","v1.2b2","v1.2b1","v1.1.1","v1.1","v1.0.2","v1.0.1","v0.9.9","v0.9.8"],"database_specific":{"vanir_signatures":[{"signature_version":"v1","source":"https://github.com/python/cpython/commit/c5512bd7c1dc28055660565275012766941d3066","id":"PSF-2026-25-3eafbb86","digest":{"line_hashes":["268023228427852566166778512071357440600","49146083870971075955850832180074366424","161672440834380912063121567226975060960","153085767786823762895735790163658016389","135509388062542668278157600424988217870","40432734503210116425854705190800869105","67917629224510527522426034072535157781","166059517570380481219309316964869990163","294360439454152527808199495974781540585","170330277675488459509468124667336941004","184053942208226878460548629848761958422","240045722696411144875232246105586979129","93710467222427039179910580139128872663","209237957012120494894586662202902686465","147654122287567650578738412833181847981","24990523950584544933005789034442021776","1264985441848487617347146654540945009","133330517599374281998429843403409091794","127443196720502476492358266579536038067","3181874749795572638750267391225425145","307914191939463532258847797789855238334","286412164138618208239887763369097989485","307593036341876832873496387178886053544","180009021221470715406240491680011005097","156465678391889216761798254167431182266","82836382254405138165517379031607017540","227968830222571029245542858130173244620","67182187083228673263224222914878921244","57736110775017630481064347297403175377","302653350848325407386670540887022255768","286226533525041986095987183448852403072","80182737293428689637757344597563484626","142560442433471134166656314351965641631","17745141639070398683318578068814680478","218952618749510052119157813261456705701","102036494579086370049475867152140605174","201649383242728164902186177763329708614","284486070469665139152058084000943158718","282125080222604138545009578927394278576","209263334470273031857898668634517540189","97167674396009702908517784832796456039","228351455830612818484346341007161794228","3845685004980929502917890862926582016","90552866213243599336765302395377852569","104656373242435013484262366179006480249","190308209830565771410520664941609283320","223157110990009253730597991692455861773","65160796642085047173564505076705510442","67461273610231228418032117386320498105","99660230946440346439155050003271657315"],"threshold":0.9},"deprecated":false,"target":{"file":"Modules/unicodedata.c"},"signature_type":"Line"},{"signature_version":"v1","source":"https://github.com/python/cpython/commit/ba785b88add96acbf403d65cb157fb2743a33a32","id":"PSF-2026-25-405651fc","digest":{"line_hashes":["268023228427852566166778512071357440600","49146083870971075955850832180074366424","161672440834380912063121567226975060960","153085767786823762895735790163658016389","135509388062542668278157600424988217870","40432734503210116425854705190800869105","67917629224510527522426034072535157781","166059517570380481219309316964869990163","294360439454152527808199495974781540585","170330277675488459509468124667336941004","184053942208226878460548629848761958422","240045722696411144875232246105586979129","93710467222427039179910580139128872663","209237957012120494894586662202902686465","147654122287567650578738412833181847981","24990523950584544933005789034442021776","1264985441848487617347146654540945009","133330517599374281998429843403409091794","127443196720502476492358266579536038067","3181874749795572638750267391225425145","307914191939463532258847797789855238334","286412164138618208239887763369097989485","37581859737422359197274500597813990409","307593036341876832873496387178886053544","180009021221470715406240491680011005097","156465678391889216761798254167431182266","82836382254405138165517379031607017540","227968830222571029245542858130173244620","67182187083228673263224222914878921244","57736110775017630481064347297403175377","302653350848325407386670540887022255768","286226533525041986095987183448852403072","80182737293428689637757344597563484626","142560442433471134166656314351965641631","17745141639070398683318578068814680478","218952618749510052119157813261456705701","102036494579086370049475867152140605174","201649383242728164902186177763329708614","284486070469665139152058084000943158718","282125080222604138545009578927394278576","209263334470273031857898668634517540189","97167674396009702908517784832796456039","228351455830612818484346341007161794228","3845685004980929502917890862926582016","90552866213243599336765302395377852569","104656373242435013484262366179006480249","190308209830565771410520664941609283320","223157110990009253730597991692455861773","65160796642085047173564505076705510442","67461273610231228418032117386320498105","99660230946440346439155050003271657315"],"threshold":0.9},"deprecated":false,"target":{"file":"Modules/unicodedata.c"},"signature_type":"Line"},{"target":{"file":"Modules/unicodedata.c","function":"nfd_nfkd"},"source":"https://github.com/python/cpython/commit/ba785b88add96acbf403d65cb157fb2743a33a32","id":"PSF-2026-25-4a4779ed","digest":{"function_hash":"162589632402962372351893321289505254809","length":2340},"deprecated":false,"signature_version":"v1","signature_type":"Function"},{"signature_version":"v1","source":"https://github.com/python/cpython/commit/6b505d1f41f8f3ea0fe5a4786d3a8fff1875cfc0","id":"PSF-2026-25-52b41288","digest":{"function_hash":"162589632402962372351893321289505254809","length":2340},"deprecated":false,"target":{"file":"Modules/unicodedata.c","function":"nfd_nfkd"},"signature_type":"Function"},{"signature_version":"v1","source":"https://github.com/python/cpython/commit/6b505d1f41f8f3ea0fe5a4786d3a8fff1875cfc0","id":"PSF-2026-25-cc49dc6a","digest":{"line_hashes":["268023228427852566166778512071357440600","49146083870971075955850832180074366424","161672440834380912063121567226975060960","153085767786823762895735790163658016389","135509388062542668278157600424988217870","40432734503210116425854705190800869105","67917629224510527522426034072535157781","166059517570380481219309316964869990163","294360439454152527808199495974781540585","170330277675488459509468124667336941004","184053942208226878460548629848761958422","240045722696411144875232246105586979129","93710467222427039179910580139128872663","209237957012120494894586662202902686465","147654122287567650578738412833181847981","24990523950584544933005789034442021776","1264985441848487617347146654540945009","133330517599374281998429843403409091794","127443196720502476492358266579536038067","3181874749795572638750267391225425145","307914191939463532258847797789855238334","286412164138618208239887763369097989485","307593036341876832873496387178886053544","180009021221470715406240491680011005097","156465678391889216761798254167431182266","82836382254405138165517379031607017540","227968830222571029245542858130173244620","67182187083228673263224222914878921244","57736110775017630481064347297403175377","302653350848325407386670540887022255768","286226533525041986095987183448852403072","80182737293428689637757344597563484626","142560442433471134166656314351965641631","17745141639070398683318578068814680478","218952618749510052119157813261456705701","102036494579086370049475867152140605174","201649383242728164902186177763329708614","284486070469665139152058084000943158718","282125080222604138545009578927394278576","209263334470273031857898668634517540189","97167674396009702908517784832796456039","228351455830612818484346341007161794228","3845685004980929502917890862926582016","90552866213243599336765302395377852569","104656373242435013484262366179006480249","190308209830565771410520664941609283320","223157110990009253730597991692455861773","65160796642085047173564505076705510442","67461273610231228418032117386320498105","99660230946440346439155050003271657315"],"threshold":0.9},"deprecated":false,"target":{"file":"Modules/unicodedata.c"},"signature_type":"Line"},{"signature_version":"v1","source":"https://github.com/python/cpython/commit/c5512bd7c1dc28055660565275012766941d3066","id":"PSF-2026-25-d51f7394","digest":{"function_hash":"162589632402962372351893321289505254809","length":2340},"deprecated":false,"target":{"file":"Modules/unicodedata.c","function":"nfd_nfkd"},"signature_type":"Function"},{"signature_version":"v1","source":"https://github.com/python/cpython/commit/991224b1e8311c85f198f6dd8208bf8cff7fc26f","id":"PSF-2026-25-dff6b0ea","deprecated":false,"digest":{"line_hashes":["268023228427852566166778512071357440600","49146083870971075955850832180074366424","161672440834380912063121567226975060960","153085767786823762895735790163658016389","135509388062542668278157600424988217870","40432734503210116425854705190800869105","67917629224510527522426034072535157781","166059517570380481219309316964869990163","294360439454152527808199495974781540585","170330277675488459509468124667336941004","184053942208226878460548629848761958422","240045722696411144875232246105586979129","93710467222427039179910580139128872663","209237957012120494894586662202902686465","147654122287567650578738412833181847981","24990523950584544933005789034442021776","1264985441848487617347146654540945009","133330517599374281998429843403409091794","127443196720502476492358266579536038067","3181874749795572638750267391225425145","307914191939463532258847797789855238334","286412164138618208239887763369097989485","307593036341876832873496387178886053544","180009021221470715406240491680011005097","156465678391889216761798254167431182266","82836382254405138165517379031607017540","227968830222571029245542858130173244620","67182187083228673263224222914878921244","57736110775017630481064347297403175377","302653350848325407386670540887022255768","286226533525041986095987183448852403072","80182737293428689637757344597563484626","142560442433471134166656314351965641631","17745141639070398683318578068814680478","218952618749510052119157813261456705701","102036494579086370049475867152140605174","201649383242728164902186177763329708614","284486070469665139152058084000943158718","282125080222604138545009578927394278576","209263334470273031857898668634517540189","97167674396009702908517784832796456039","228351455830612818484346341007161794228","3845685004980929502917890862926582016","90552866213243599336765302395377852569","104656373242435013484262366179006480249","190308209830565771410520664941609283320","223157110990009253730597991692455861773","65160796642085047173564505076705510442","67461273610231228418032117386320498105","99660230946440346439155050003271657315"],"threshold":0.9},"target":{"file":"Modules/unicodedata.c"},"signature_type":"Line"},{"signature_version":"v1","source":"https://github.com/python/cpython/commit/991224b1e8311c85f198f6dd8208bf8cff7fc26f","id":"PSF-2026-25-e319104f","digest":{"function_hash":"162589632402962372351893321289505254809","length":2340},"deprecated":false,"target":{"file":"Modules/unicodedata.c","function":"nfd_nfkd"},"signature_type":"Function"}],"source":"https://github.com/psf/advisory-database/blob/main/advisories/python/PSF-2026-25.json","vanir_signatures_modified":"2026-06-05T08:03:17Z"}}],"schema_version":"1.7.5"}